Blog'a Dön

Wise döviz kuru API'si: Wise kurlarını nasıl alırsınız ve ne zaman alternatife ihtiyacınız olur

V
Vlado Grigirov
September 04, 2026
Currency API Exchange Rates Wise API Comparison Fintech Developer Guide

Wise'ın döviz kurunu kendi ürününüzün içinde göstermeyi denediyseniz, Wise döviz kuru API'sinin tam da beklediğiniz şey olmadığını muhtemelen fark etmişsinizdir. Wise gerçekten çok iyi orta piyasa kuru (mid-market rate) verisi yayımlıyor ve bunu bir REST uç noktası üzerinden sunuyor — ama bu veri bir iş ortağı onay sürecinin ardında duruyor, bir piyasa verisi API'sinde değil bir ödeme API'sinde yaşıyor ve geri aldığınız kur kasıtlı olarak kullanıcınızın ödeyeceği fiyat değil.

Bu rehber Wise'ın tam olarak neyi açtığını, nasıl kimlik doğrulaması yapacağınızı, her uç noktanın gerçekte ne döndürdüğünü ve Wise'ın projeniz için doğru kaynak olup olmadığını belirleyen beş yapısal sınırı ele alıyor. Ayrıca çoğu kişinin aslında sorduğu soruya da dürüstçe yanıt veriyor: eğer tek ihtiyacınız bir uygulamada güvenilir orta piyasa kurlarıysa, Wise bu iş için doğru araç mı?

Wise döviz kuru API'si aslında nedir

Wise bir para transferi şirketidir. Wise Platform markasıyla sunulan API'si para hareket ettirmek için kurulmuştur: teklif oluşturmak, alıcı kaydetmek, transferleri fonlamak, bakiyeleri mutabakatlamak, kart çıkarmak. Döviz kurları bu API'de yer alır çünkü kur olmadan bir transferi fiyatlandıramazsınız, Wise piyasa verisi sattığı için değil.

Bu çerçeve, geliştiricilerin karşılaştığı neredeyse tüm sürprizleri açıklar. Kurlar bir ödeme platformunun içindeki küçük bir modüldür ve Wise'ın fiilen hizmet verdiği para birimi rotalarıyla sınırlıdır.

Üç ayrı yüzey, üç farklı erişim yolu

En büyük kafa karışıklığı kaynağı şu: "Wise kur API'si" en az üç farklı şeyi ifade ediyor.

  1. GET /rates — döviz kuru uç noktası. Bir para birimi çifti için Wise'ın orta piyasa kurunu güncel veya geçmiş olarak döndürür. Çoğu kişinin kastettiği budur.
  2. POST /quotes — teklif uç noktası. Fiyatlandırılmış bir transfer döndürür: kur, ücret, tahmini teslim süresi ve kurun geçerlilik bitiş damgası.
  3. GET /comparisons — karşılaştırma uç noktası. Belirli bir rotada Wise ve rakip sağlayıcılar ile bankalar için tahmini fiyat ve hız verisi döndürür.

Üçü de aynı referansta belgelenmiştir, farklı kimlik doğrulama şemaları kullanır ve çok farklı sorulara yanıt verir. Yanlış olanı seçmek, "bu kur neden wise.com'da gördüğümden farklı?" sorusunun her zamanki nedenidir.

Wise kur verilerine nasıl erişilir

Kendi kendine alınabilen bir API anahtarı yok. Erişim iki yola ayrılıyor:

Platform iş ortakları. Wise Platform iş ortağı olarak onboarding sürecinden geçer ve token almak için OAuth 2.0 (client ID ve client secret) ile kimlik doğrularsınız. /rates referansı, uç noktanın "iştirak (affiliate) olmayan iş ortakları için yalnızca Bearer kimlik doğrulamasını desteklediğini" belirtir; User Token veya Personal Token kullanılır.

İştirak (affiliate) iş ortakları. Wise iştirak programına katılır, ardından kimlik bilgileri talep etmek için partnerwise@wise.com adresine yazarsınız. Wise talebi inceler ve onaylarsa tam olarak iki uç noktayı açan Basic auth kimlik bilgileri verir: Exchange Rates List ve Get Temporary Quote. Başka hiçbir şey.

Yolun ayrıldığı yer burası. Bir karşılaştırma sitesi, bir seyahat blogu bileşeni ya da bir fintech pazarlama sayfası yapıyorsanız iştirak yolu tam size göre tasarlanmıştır. Ama bir ürün özelliği yapıyorsanız — çok para birimli fiyatlandırma, faturalama, bir çevrim ekranı, dahili bir rapor — bir ödeme iş ortaklığı ekibinden piyasa verisi için onay istiyorsunuz demektir ve bu, iki tarafın da bu ilişkiden beklediği şey değildir.

Şunu da not edin: Wise, API sürümünü URL yoluna gömer. Üretim https://api.wise.com/2026Q3/rates, kum havuzu ise https://api.wise-sandbox.com/2026Q3/rates. Eski iştirak belgeleri hâlâ api.transferwise.com üzerindeki /v1/rates'e atıf yapıyor. Yola gömülü sürüm, biri yükseltmeyi üstlenmediği sürece entegrasyonunuzun sessizce yaşlanması demektir.

Wise kur uç noktasını çağırmak

Token'ı aldıktan sonra uç noktanın kendisi temiz ve iyi tasarlanmış. Dört çağrı biçimi belgelenmiş durumda:

# Latest rates for every supported currency
curl -X GET 'https://api.wise.com/2026Q3/rates' \
  -H 'Authorization: Bearer <YOUR_TOKEN>'

# Latest rate for a single pair
curl -X GET 'https://api.wise.com/2026Q3/rates?source=EUR&target=USD' \
  -H 'Authorization: Bearer <YOUR_TOKEN>'

# Rate at a specific historical moment
curl -X GET 'https://api.wise.com/2026Q3/rates?source=EUR&target=USD&time=2019-02-13T14:53:01' \
  -H 'Authorization: Bearer <YOUR_TOKEN>'

# A time series, grouped by day, hour or minute
curl -X GET 'https://api.wise.com/2026Q3/rates?source=EUR&target=USD&from=2019-02-13&to=2019-03-13&group=day' \
  -H 'Authorization: Bearer <YOUR_TOKEN>'

Yanıt bir dizidir, her aralık için bir nesne:

[
  {
    "rate": 1.166,
    "source": "EUR",
    "target": "USD",
    "time": "2018-08-31T10:43:31+0000"
  }
]

İki ayrıntı öne çıkıyor. Birincisi, group parametresi day, hour veya minute kabul ediyor — dakika düzeyinde geçmiş veri alışılmadık ölçüde cömert ve geriye dönük testler için gerçekten işe yarar. İkincisi, yanıt tek bir çift için bile her zaman bir dizidir; ayrıştırmayı buna göre yapın:

import requests

TOKEN = "<YOUR_TOKEN>"
BASE = "https://api.wise.com/2026Q3"

def wise_rate(source: str, target: str) -> float:
    r = requests.get(
        f"{BASE}/rates",
        params={"source": source, "target": target},
        headers={"Authorization": f"Bearer {TOKEN}"},
        timeout=10,
    )
    r.raise_for_status()
    payload = r.json()
    if not payload:
        raise LookupError(f"No rate returned for {source}/{target}")
    return payload[0]["rate"]  # array, even for one pair

print(wise_rate("EUR", "USD"))

Sahada iyi belgelenmiş bir tuzak daha: aynı istekte time ile birlikte from/to gönderirseniz aralık parametreleri kazanır ve time yok sayılır. Bu durum n8n'in Wise düğümünde uzun süre yaşayan bir hataya yol açtı ve ancak bir upstream yamayla düzeldi. Birini ya da diğerini gönderin, asla ikisini birden değil.

Orta piyasa kuru, kullanıcınızın ödediği fiyat değildir

Wise'ın /rates uç noktası orta piyasa kurunu döndürür — bankalararası piyasadaki alış ve satış fiyatının orta noktası. Bu "gerçek" kurdur ve Wise pazarlamasını bunun üzerine kurar. Aynı zamanda tanımı gereği hiç kimsenin üzerinden işlem yapmadığı bir kurdur.

Bir transferin gerçekte ne kadara mal olacağını bilmeniz gerekiyorsa, ihtiyacınız olan /quotes:

curl -X POST 'https://api.wise.com/2026Q3/quotes' \
  -H 'Authorization: Bearer <YOUR_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "sourceCurrency": "GBP",
    "targetCurrency": "USD",
    "sourceAmount": 100
  }'

Teklif yanıtı, fiyatlandırma mantığının gerçekten ihtiyaç duyduğu alanları taşır: rate, rateType (örneğin FIXED), rateExpirationTime, bir fee dökümü, feePercentage ve her ödeme yöntemi için estimatedDelivery içeren bir paymentOptions dizisi. Ayrıca notices döner — Wise'ın kendi belgelenmiş örneği, bir müşterinin garantili kurla en fazla üç açık transfer tutabileceğini, sonrasında yenilerinin canlı kura düşeceğini uyarır.

Pratik sonuç şu: teklif, bir transfere bağlı, kısa ömürlü ve durum taşıyan bir nesnedir, düzenli aralıklarla sorgulayabileceğiniz bir kur okuması değil. Kullanım senaryonuz "fiyat sayfasında bugünün USD fiyatını göstermek" ise teklifler yanlış ilkel yapıdır, kurlar doğrudur. Senaryonuz "kullanıcıya tam olarak ne alacağını söylemek" ise yalnızca kurlar tutarı olduğundan yüksek gösterir. Bu ayrımı karıştırmak, para birimi yuvarlama ve ondalık basamaklar rehberimizde anlattığımız yuvarlama ve mutabakat sapmalarının yaygın bir kaynağıdır.

Karşılaştırma API'si gerçekte ne döndürür

Karşılaştırma uç noktası platformun en ilginç ve en yanlış anlaşılan parçasıdır. Bir rotada bankalar ve transfer servisleri için sağlayıcı bazında fiyat ve hız tahminleri döndürür:

curl -X GET 'https://api.wise.com/2026Q3/comparisons?sourceCurrency=GBP&targetCurrency=EUR&sendAmount=10000&filter=POPULAR'

Bunun üzerine bir şey inşa etmeden önce Wise'ın kendi metodoloji notunu dikkatle okuyun. Wise, üçüncü taraf web sitelerinden ilan edilen kurları ve ücretleri topladığını, her sağlayıcının toplama anındaki orta piyasa kuruna göre kâr marjını hesapladığını ve ardından saklanan bu marjı güncel orta piyasa kuruna yeniden uygulayarak size ulaşan sayıyı ürettiğini belirtiyor. Toplama işlemi yaklaşık saatte bir çalışıyor.

Başka bir deyişle, bu uç noktadan gelen rakip fiyatları saatlik derlemelerden türetilmiş modellenmiş tahminlerdir, canlı teklifler değil. Wise bunu açıkça söylüyor, bu takdire değer — ama aynı zamanda verinin, bir rakibin rakamının arkasında durmanız gereken hiçbir iş için uygun olmadığı anlamına geliyor. Wise ayrıca tahminleri yalnızca banka havalesiyle giriş ve çıkış ile sınırlıyor ve birçok sağlayıcının kart ile nakit işlemleri çok farklı fiyatlandırdığını belirtiyor.

Yapısal olarak yanıt normalize edilmemiştir: aynı sağlayıcı, fiyat ve hız hedef ülkeye göre değiştiği için aynı para birimi çifti için birden çok teklif döndürebilir. Bir providers dizisi alırsınız, her biri kendi quotes dizisiyle; bunu sağlayıcı başına tek bir öne çıkan sayıya indirgemek API'nin değil sizin işinizdir.

Wise kurları üzerine inşa etmeden önce bilinmesi gereken beş sınır

  1. Erişim bir kayıt değil, bir iş ilişkisidir. İştirak onayı ya da Platform onboarding'i her kur çağrısının önündedir. Otuz saniyede anahtar üreteceğiniz bir panel yok.
  2. Kapsama, transfer rotalarını izler. Wise, para hareket ettirebildiği para birimlerini destekler. Özel bir veri sağlayıcısı ise fiyatlayabildiği para birimlerini kapsar; bu daha geniş bir kümedir — Finexly, hiçbir transfer koridoru bulunmayanlar dâhil 170'ten fazla para birimini kapsar.
  3. Kurlar bir ödeme API'sindeki tek bir modüldür. Etrafında teklifler, alıcılar, KYC, kartlar ve webhook'lar vardır. Tek istediğiniz bir sayıyken bakımını üstleneceğiniz büyük ve güvenlik açısından hassas bir entegrasyon.
  4. Yayımlanmış kota yok. /rates referansı bir 429 yanıtını belgeliyor ama kamuya açık bir istek limiti yayımlamıyor; yani kapasiteyi beyan edilmemiş bir sınıra karşı planlıyorsunuz. Bunu, her yanıtta başlık gönderen açık bir modelle karşılaştırın.
  5. Çağrı başına iki para birimi. /rates tek bir source ve tek bir target alır. Sekiz para biriminde fiyatlandırma, sekiz çağrı ya da tüm tabloyu çekip istemci tarafında filtrelemek demektir.

Bunların hiçbiri bir kusur değil. Bir ödeme API'sini veri API'si olarak kullandığınızda görünen şey tam olarak budur.

Wise ne zaman doğru seçim, ne zaman değil

Kullanım senaryonuzEn iyi seçenekNeden
Karşılaştırma sitesi veya "bankalar vs Wise" iştirak içeriğiWise Karşılaştırma API'siBu verinin tek kaynağı odur ve iştirak yolu tam olarak bunun için vardır
Gerçekten Wise üzerinden para göndermekWise Quotes + TransfersFiyatlandırılmış ve süresi dolan teklif nesnesine ihtiyacınız var
Kullanıcılar istediği için Wise markalı kuru göstermekWise /ratesMarka atfı zaten tüm mesele
Çok para birimli fiyatlandırma, ödeme akışı veya çevrim ekranıÖzel döviz API'siGenişlik, anında anahtar ve basit bir sözleşme gerekir
Faturalama, tahsilat ve gelir raporlamasıÖzel döviz API'siİstikrarlı bir geçmiş seri ve denetim izi gerekir
Geriye dönük test veya analitikİkisi deWise'ın dakikalık geçmişi güçlü; veri API'sini edinmek daha kolay
İlk üç satırdaysanız Wise'ı kullanın. Doğru araç odur ve bu yazı aksini iddia etmeyecek. Alt satırlardaysanız, basit bir sorgu için iş ortağı onboarding maliyetini ödüyorsunuz demektir ve bu amaç için kurulmuş bir döviz kuru API'si daha kısa yoldur. Aynı akıl yürütme, bir ödeme işlemcisinin FX uç noktalarını veri kaynağı olarak kullanmak için de geçerlidir; bunu Stripe FX Quotes API'si ile özel bir döviz API'si karşılaştırmasında ele aldık.

Bunun yerine özel bir döviz kuru API'si kullanmak

Bir veri API'si dengeyi tersine çevirir: onboarding görüşmesi yok, daha geniş kapsama, açık bir kota ve içinde kurdan başka hiçbir şey olmayan bir yanıt.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.finexly.com/v1/rate?from=EUR&to=USD"
{ "pair": "EUR_USD", "rate": 1.0852 }

Birden çok para biriminde fiyatlandırma, çift başına bir çağrı yerine tek bir gidiş-dönüştür:

const apiKey = process.env.FINEXLY_API_KEY;

async function priceTable(base, quotes) {
  const q = quotes.map((c) => `${base}_${c}`).join(',');
  const res = await fetch(`https://api.finexly.com/v1/convert?q=${q}`, {
    headers: { Authorization: `Bearer ${apiKey}` },
  });
  if (!res.ok) throw new Error(`Finexly ${res.status}`);
  return res.json();
}

const rates = await priceTable('USD', ['EUR', 'GBP', 'JPY', 'CAD', 'AUD']);
// { "USD_EUR": { "rate": 0.9215 }, "USD_GBP": { "rate": 0.7892 }, ... }

Çarpan yerine dönüştürülmüş tutarı istediğinizde, yuvarlamanın tek bir yerde olması için aritmetiği API'ye bırakın:

import requests

def convert(amount, src, dst, api_key):
    r = requests.get(
        "https://api.finexly.com/v1/convert-amount",
        params={"from": src, "to": dst, "amount": amount},
        headers={"Authorization": f"Bearer {api_key}"},
        timeout=10,
    )
    r.raise_for_status()
    return r.json()["result"]

print(convert(100, "USD", "EUR", "YOUR_API_KEY"))

Her yanıt X-RateLimit-Limit, X-RateLimit-Used ve X-RateLimit-Units başlıklarını taşır; yani kota tahmin edilen değil gözlemlenen bir şeydir. Kurlar piyasa saatlerinde her dakika yenilenir. Ücretsiz plan ayda 1.000 istek ve dakikada 10 istek sunar; ücretli planlar 3.500 istek için ayda 6,99 $ ile başlayıp Professional planda 100.000'e çıkar — tüm döküm fiyatlandırma sayfasında.

Hacim üzerine kısa bir not: ayda 1.000 istek, siz önbelleğe alana kadar az görünür. Tüm kur tablosunu on beş dakikada bir yenileyen tek bir zamanlanmış görev ayda yaklaşık 2.900 çağrı kullanır; altmış dakikada bir ise yaklaşık 730. Önbellekleme, çağrı hacminizi trafiğin değil zamanın bir fonksiyonu hâline getirir ve küçük bir planı her ölçekte uygulanabilir kılan da budur. Kalıplar döviz API'leri için önbellekleme ve hata yönetimi yazımızda.

Wise /rates'ten geçiş

Mevcut bir entegrasyonu taşıyorsanız eşleme neredeyse bire birdir:

WiseKarşılığıNot
GET /ratesÖnce GET /v1/currencies, sonra /v1/rateWise'ın çıplak /rates'i her şeyi döndürür; para birimi listesini bir kez çekin
GET /rates?source=X&target=YGET /v1/rate?from=X&to=YTek elemanlı dizi değil, nesne döndürür
Birden çok çift, birden çok çağrıGET /v1/convert?q=X_Y,X_ZTek istek
Elle amount * rateGET /v1/convert-amountYuvarlama sunucu tarafında
?time= geçmiş noktaGeçmiş veri uç noktasıÜcretli plan gerektirir; geçmiş kurlar rehberine bakın
Basic veya OAuth tokenAuthorization: BearerAnahtar panelden, onay adımı yok
Taşınamayan tek şey Wise markasıdır. Değer önermeniz "size Wise kurunu gösteriyoruz" ise onu yalnızca Wise sağlayabilir. "Fiyatlarımız sizin para biriminizde doğrudur" ise, doğru olan herhangi bir orta piyasa kaynağı işi görür — verinin nereden geldiği sorusu ise her hâlükârda anlaşılmaya değer; bunu döviz kuru API'leri verilerini nereden alır yazımızda çözümlüyoruz.

Son olarak: lütfen wise.com'u kazımayın. Birkaç pazar yeri ilanı tam olarak bunu sunuyor; kırılganlar, hukuken bulanıklar ve sayfanın işaretlemesi ilk değiştiğinde bozulurlar. Özellikle Wise'ın rakamına ihtiyacınız varsa iştirak yolunu izleyin ve onu API'den usulünce alın. Bir rakama ihtiyacınız varsa, rakam sunmak için kurulmuş bir API kullanın. Ücretsiz döviz API'leri karşılaştırmamız ve Frankfurter alternatifleri rehberi, anahtarsız seçenekleri daha derinlemesine ele alıyor.

Sıkça Sorulan Sorular

Wise döviz kuru API'si ücretsiz mi? Kur uç noktası için yayımlanmış bir istek başı ücret yok, ama erişim açık değil. Onaylı bir Wise Platform iş ortağı ya da onaylı bir iştirak ortağı olmanız gerekir; bu da bir kayıt formu değil, bir başvuru ve inceleme demektir. Çoğu proje için maliyet para değil zamandır.

Wise API'sini hesapsız kullanabilir miyim? Hayır. Belgelenmiş iki yol da kimlik bilgisi gerektirir — Platform iş ortakları için Bearer token, iştirak ortakları için Basic auth ile client ID ve secret. Belgelenmiş örneğinde yetkilendirme başlığı bulunmayan tek uç nokta /comparisons; ama üretim trafiğini bu varsayım üzerine kurmak akıllıca olmaz.

Wise API'si wise.com'da gösterilen kurun aynısını mı döndürür? /rates orta piyasa kurunu döndürür; bu, Wise'ın öne çıkardığı rakamdır. Müşterinin fiilen aldığı tutar /quotes'tan gelir ve Wise ücretini içerir. Rakamlarınız siteyle uyuşmuyorsa, neredeyse kesinlikle bir orta piyasa kurunu fiyatlandırılmış bir teklifle karşılaştırıyorsunuzdur.

Wise'ın geçmiş kur verisi ne kadar geriye gidiyor? Uç nokta, day, hour veya minute gruplamasıyla keyfi from/to zaman damgalarını kabul ediyor; Wise referansta sabit bir en erken tarih yayımlamıyor, bu yüzden kapsama olduğunu varsaymak yerine ihtiyacınız olan aralığı bizzat test edin.

Wise döviz kuru API'sinin en iyi alternatifi nedir? Neyi değiştirdiğinize bağlı. Rakip fiyat karşılaştırması için alternatif yok — Wise'ın Karşılaştırma API'si benzersiz. Bir üründe orta piyasa kurları için ise özel bir döviz verisi API'si daha geniş kapsama, anında anahtar ve açık bir kota sunar. Seçenekleri API karşılaştırma sayfamızda kıyaslayın.

Wise'ın kurunu kullanıcılarıma yasal olarak gösterebilir miyim? Onaylı bir iştirak veya Platform iş ortağıysanız evet, o anlaşmanın koşulları çerçevesinde. Aynı rakamları elde etmek için genel siteyi kazımak ise ayrı bir mesele ve üzerine iş kurmanızı önereceğimiz bir şey değil.


İş ortağı onboarding'ini atlayıp doğrudan kurları almaya hazır mısınız? Ücretsiz Finexly API anahtarınızı alın — kredi kartı gerekmez. 170'ten fazla para biriminde ayda 1.000 ücretsiz istekle başlayın ve yalnızca trafiğiniz büyüdüğünde yükseltin. Kurları önce tarayıcıda döviz çeviricimizle de deneyebilirsiniz.

Vlado Grigirov

Senior Currency Markets Analyst & Financial Strategist

Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...

View full profile →