npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

para-transferi

v1.0.2

Published

Uluslararası para transferi sağlayıcılarını karşılaştırma kütüphanesi. Wise, Remitly, XE, OFX, WorldRemit ve Revolut ücret, kur ve hız karşılaştırması.

Readme

para-transferi

Uluslararası para transferi sağlayıcılarını karşılaştırma kütüphanesi — Türkiye'den ve Türkiye'ye yapılan para transferlerinde en uygun sağlayıcıyı bulun.

npm version License: MIT Node.js TypeScript Zero Dependencies

Wise, Remitly, XE, OFX, WorldRemit ve Revolut gibi popüler para transferi servislerinin ücretlerini, döviz kurlarını, kur marjlarını ve transfer sürelerini tek bir API ile karşılaştırın. Genişletilebilir plugin sistemi sayesinde banka, fintech veya yerel havale servisi gibi kendi sağlayıcılarınızı da ekleyebilirsiniz.


Neden para-transferi?

Uluslararası para transferi yaparken doğru sağlayıcıyı seçmek yüzlerce, hatta binlerce lira tasarruf ettirebilir. Ancak her sağlayıcının farklı ücret yapısı, kur marjı ve transfer hızı vardır. Bu kütüphane ile:

  • Gerçek maliyeti görün — Sadece transfer ücretini değil, gizli kur marjı maliyetini de hesaplayın
  • Otomatik karşılaştırma yapın — Tek bir fonksiyon çağrısıyla tüm sağlayıcıları sıralayın
  • Uygulamanıza entegre edin — Fintech uygulamaları, karşılaştırma siteleri veya kişisel projelerinize kolayca ekleyin
  • Canlı döviz kurları ile çalışın — ECB (Avrupa Merkez Bankası) verileriyle gerçek zamanlı hesaplama

Özellikler

| Özellik | Detay | |---------|-------| | 6 Yerleşik Sağlayıcı | Wise, Remitly, XE, OFX, WorldRemit, Revolut | | Canlı Döviz Kurları | ECB ve exchangerate-api entegrasyonu, 30 dakika önbellek | | Toplam Maliyet Hesaplama | Transfer ücreti + kur marjı + koridor bazlı özel ücretler | | Akıllı Karşılaştırma | Maliyet, hız, puan veya kura göre sıralama | | 56 Ülke Desteği | Türkiye, ABD, Almanya, İngiltere, Fransa ve 50+ ülke | | 46 Para Birimi | TRY, USD, EUR, GBP, CHF ve 40+ para birimi | | Plugin Sistemi | Özel sağlayıcı ekleme, kaldırma ve güncelleme | | TypeScript Desteği | Tam tip tanımları, IntelliSense desteği | | Sıfır Bağımlılık | Node.js 18+ native fetch(), ek paket gerektirmez | | Dual Format | ESM ve CommonJS (CJS) çıktı desteği |


Kurulum

npm install para-transferi
# veya yarn ile
yarn add para-transferi
# veya pnpm ile
pnpm add para-transferi

Hızlı Başlangıç

Sağlayıcıları Karşılaştır

Türkiye'den Amerika'ya 10.000 TL göndermek isteyen bir kullanıcı için tüm sağlayıcıları karşılaştırın:

import { karsilastir } from "para-transferi";

const sonuc = await karsilastir({
  gonderenUlke: "TR",
  aliciUlke: "US",
  gonderenParaBirimi: "TRY",
  aliciParaBirimi: "USD",
  miktar: 10000,
});

console.log(`Piyasa kuru: ${sonuc.piyasaKuru}`);
console.log(`Kur kaynağı: ${sonuc.kurKaynagi}`);
console.log(`Karşılaştırılan sağlayıcı sayısı: ${sonuc.sonuclar.length}`);

// En ucuzdan en pahalıya sıralı sonuçlar
for (const s of sonuc.sonuclar) {
  console.log(`
    ${s.saglayiciAd}
    Transfer ücreti: ${s.transferUcreti} TRY
    Kur marjı maliyeti: ${s.kurMarjiMaliyet} TRY
    Toplam maliyet: ${s.toplamMaliyet} TRY
    Alıcı alacak: ${s.aliciMiktar} USD
    Tahmini süre: ${s.tahminiSure.aciklama}
  `);
}

// Desteklemeyen sağlayıcıları da görebilirsiniz
for (const d of sonuc.desteklemeyenler) {
  console.log(`${d.saglayiciId}: ${d.sebep}`);
}

En Uygun Sağlayıcıyı Bul

Tek satırda en düşük maliyetli sağlayıcıyı bulun:

import { enUygun } from "para-transferi";

const enIyi = await enUygun({
  gonderenUlke: "TR",
  aliciUlke: "DE",
  gonderenParaBirimi: "TRY",
  aliciParaBirimi: "EUR",
  miktar: 5000,
});

if (enIyi) {
  console.log(`En uygun sağlayıcı: ${enIyi.saglayiciAd}`);
  console.log(`Toplam maliyet: ${enIyi.toplamMaliyet} TRY`);
  console.log(`Alıcı alacak: ${enIyi.aliciMiktar} EUR`);
  console.log(`Uygulanan kur: ${enIyi.uyguladigiKur}`);
  console.log(`Piyasa kuru: ${enIyi.piyasaKuru}`);
  console.log(`Kur marjı: %${enIyi.kurMarjiYuzde}`);
}

Tek Sağlayıcı ile Maliyet Hesapla

Belirli bir sağlayıcının ücretlerini ayrıntılı hesaplayın:

import { hesapla } from "para-transferi";

const sonuc = await hesapla("wise", 10000, "TRY", "USD", "TR", "US");

console.log(`Sağlayıcı: ${sonuc.saglayiciAd}`);
console.log(`Gönderilen: ${sonuc.gonderenMiktar} ${sonuc.gonderenParaBirimi}`);
console.log(`Alıcı alacak: ${sonuc.aliciMiktar} ${sonuc.aliciParaBirimi}`);
console.log(`Transfer ücreti: ${sonuc.transferUcreti} TRY`);
console.log(`Kur marjı maliyeti: ${sonuc.kurMarjiMaliyet} TRY`);
console.log(`Toplam maliyet: ${sonuc.toplamMaliyet} TRY`);
console.log(`Uygulanan kur: ${sonuc.uyguladigiKur}`);
console.log(`Piyasa orta kuru: ${sonuc.piyasaKuru}`);
console.log(`Tahmini süre: ${sonuc.tahminiSure.aciklama}`);

Canlı Döviz Kuru Getir

ECB veya exchangerate-api'den güncel döviz kurlarını çekin:

import { kurGetir } from "para-transferi";

const tryUsd = await kurGetir("TRY", "USD");
console.log(`1 TRY = ${tryUsd.kur} USD`);
console.log(`Kaynak: ${tryUsd.kaynak}`);
console.log(`Tarih: ${tryUsd.tarih}`);

const eurTry = await kurGetir("EUR", "TRY");
console.log(`1 EUR = ${eurTry.kur} TRY`);

Ülke ve Koridor Desteğini Kontrol Et

Bir ülkenin hangi sağlayıcılar tarafından desteklendiğini öğrenin:

import { ulkeDestegi, desteklenenUlkeler, desteklenenParaBirimleri } from "para-transferi";

// Türkiye desteği
const tr = ulkeDestegi("TR");
console.log(`Ülke: ${tr.ulkeAdi}`);
console.log(`Gönderi destekleyen: ${tr.destekleyenSaglayicilar.filter(s => s.gonderimVar).length} sağlayıcı`);
console.log(`Alım destekleyen: ${tr.destekleyenSaglayicilar.filter(s => s.alimVar).length} sağlayıcı`);

// Tüm desteklenen ülkeler
const ulkeler = desteklenenUlkeler();
console.log(`Toplam ${ulkeler.length} ülke destekleniyor`);

// Tüm para birimleri
const birimler = desteklenenParaBirimleri();
console.log(`Toplam ${birimler.length} para birimi destekleniyor`);

Sağlayıcıları Listele

Kayıtlı tüm sağlayıcıların detaylı bilgilerine erişin:

import { saglayicilar } from "para-transferi";

const liste = saglayicilar();

for (const s of liste) {
  console.log(`
    ${s.ad} (${s.id})
    Web: ${s.webSitesi}
    Kuruluş: ${s.kurulusYili}
    Merkez: ${s.merkezUlke}
    Puan: ${s.puan}/5
    Kur marjı: %${s.kurMarjiYuzde}
    Lisanslar: ${s.duzenleme.lisanslar.join(", ")}
    Gönderen ülke sayısı: ${s.gonderenUlkeler.length}
    Alıcı ülke sayısı: ${s.aliciUlkeler.length}
    Ödeme yöntemleri: ${s.odemeYontemleri.join(", ")}
  `);
}

Desteklenen Sağlayıcılar

Wise (TransferWise)

| Bilgi | Detay | |-------|-------| | Kuruluş | 2011, Londra | | Kur Marjı | %0 (orta piyasa kuru) | | Ücret Modeli | %0.4-%1.5 arası değişen ücretler | | Transfer Hızı | 30 dakika - 2 iş günü | | Lisanslar | FCA, FinCEN, ASIC, MAS | | Ödeme | Banka havalesi, kart, Apple Pay, Google Pay, SWIFT, SEPA |

Wise, gerçek orta piyasa kurunu (mid-market rate) kullanan nadir sağlayıcılardan biridir. Kur marjı %0 olduğundan, toplam maliyet sadece transfer ücretinden oluşur. Özellikle büyük tutarlı transferlerde rekabetçi fiyatlar sunar.

Remitly

| Bilgi | Detay | |-------|-------| | Kuruluş | 2011, Seattle | | Kur Marjı | ~%1.5 | | Ücret Modeli | Sabit ücret ($2.99 - $3.99) | | Transfer Hızı | Dakikalar (Express) - 5 iş günü (Economy) | | Lisanslar | FinCEN, FCA, ASIC | | Ödeme | Banka havalesi, banka kartı, kredi kartı |

Remitly, gelişmekte olan ülkelere para gönderme konusunda uzmanlaşmıştır. Mobil cüzdan, nakit teslim ve eve teslim gibi alternatif teslimat seçenekleri sunar. Express seçeneğiyle dakikalar içinde para gönderebilirsiniz.

XE Money Transfer

| Bilgi | Detay | |-------|-------| | Kuruluş | 1993, Kanada | | Kur Marjı | ~%1.0 | | Ücret Modeli | Transfer ücreti yok (maliyet kur marjına dahil) | | Transfer Hızı | 1-4 iş günü | | Lisanslar | FinCEN, FCA, ASIC, FINTRAC | | Ödeme | Banka havalesi, SWIFT |

XE, dünyanın en bilinen döviz kuru platformudur. Transfer ücreti almaz ancak döviz kuru üzerinden marj uygular. Euronet Worldwide bünyesinde güvenilir ve köklü bir kurumdur.

OFX

| Bilgi | Detay | |-------|-------| | Kuruluş | 1998, Sydney | | Kur Marjı | ~%0.4 | | Ücret Modeli | Transfer ücreti yok (maliyet kur marjına dahil) | | Transfer Hızı | 1-3 iş günü | | Lisanslar | ASIC, FCA, FinCEN, FINTRAC, MAS | | Ödeme | Banka havalesi, SWIFT |

OFX, özellikle büyük tutarlı transferlerde (10.000$ ve üzeri) en rekabetçi kurları sunan sağlayıcıdır. %0.4 gibi düşük bir kur marjı ile işletmeler ve yüksek tutarlı bireysel transferler için idealdir. 5 milyon dolara kadar tek seferde transfer yapılabilir.

WorldRemit

| Bilgi | Detay | |-------|-------| | Kuruluş | 2010, Londra | | Kur Marjı | ~%1.8 | | Ücret Modeli | Sabit ücret ($1.99 - $3.99) | | Transfer Hızı | Dakikalar (mobil cüzdan) - 3 iş günü | | Lisanslar | FCA, FinCEN, ASIC, FINTRAC | | Ödeme | Banka havalesi, banka kartı, kredi kartı, Apple Pay |

WorldRemit, çoklu teslimat seçenekleriyle öne çıkar. M-Pesa gibi mobil cüzdanlara dakikalar içinde para gönderebilir, nakit teslim noktalarından para çektirebilirsiniz. Afrika ve Güney Asya'ya transferlerde popülerdir.

Revolut

| Bilgi | Detay | |-------|-------| | Kuruluş | 2015, Londra | | Kur Marjı | ~%0.3 (hafta içi), ~%1.3 (hafta sonu) | | Ücret Modeli | Standart: aylık ücretsiz limit üzeri %0.5, Premium/Metal: sınırsız | | Transfer Hızı | Anlık (Revolut arası) - 3 iş günü (SWIFT) | | Lisanslar | ECB, FCA, FinCEN | | Ödeme | Banka havalesi, kart, Apple Pay, Google Pay, SWIFT, SEPA |

Revolut, dijital bankacılık platformu olarak hafta içi neredeyse piyasa kuruna yakın kurlarla transfer sunar. Revolut kullanıcıları arasında anlık ve ücretsiz transfer yapılabilir. Premium ve Metal planlarında sınırsız ücretsiz döviz transferi bulunur.


Sağlayıcı Karşılaştırma Tablosu

| Sağlayıcı | Kur Marjı | Ücret | Min. Transfer | Maks. Transfer | Hız | Puan | |-----------|-----------|-------|---------------|----------------|-----|------| | Wise | %0 | %0.4-1.5 | $1 | $1.500.000 | 30dk-2 gün | 4.6/5 | | Revolut | %0.3 | %0-0.5 | $1 | $250.000 | Anlık-3 gün | 4.5/5 | | Remitly | %1.5 | $2.99-3.99 | $25 | $25.000 | Dakikalar-5 gün | 4.4/5 | | OFX | %0.4 | Yok | $250 | $5.000.000 | 1-3 gün | 4.3/5 | | XE | %1.0 | Yok | $100 | $500.000 | 1-4 gün | 4.2/5 | | WorldRemit | %1.8 | $1.99-3.99 | $10 | $10.000 | Dakikalar-3 gün | 4.1/5 |


API Referansı

karsilastir(parametreler) — Sağlayıcıları Karşılaştır

Belirtilen transfer koridoru ve miktar için tüm uygun sağlayıcıları karşılaştırır, maliyet hesabı yapar ve sıralar. Canlı döviz kuru ile çalışır.

Parametreler:

| Alan | Tip | Zorunlu | Varsayılan | Açıklama | |------|-----|---------|------------|----------| | gonderenUlke | string | Evet | — | Gönderen ülke kodu (ISO 3166-1 alpha-2, ör: "TR") | | aliciUlke | string | Evet | — | Alıcı ülke kodu (ör: "US", "DE", "GB") | | gonderenParaBirimi | string | Evet | — | Gönderen para birimi (ISO 4217, ör: "TRY") | | aliciParaBirimi | string | Evet | — | Alıcı para birimi (ör: "USD", "EUR") | | miktar | number | Evet | — | Gönderilecek miktar (gönderen para birimi cinsinden) | | siralamaKriteri | string | Hayır | "toplam_maliyet" | Sıralama: "toplam_maliyet" | "hiz" | "puan" | "kur" | | saglayiciFiltresi | string[] | Hayır | Tümü | Sadece belirli sağlayıcılar (ör: ["wise", "revolut"]) | | transferYontemi | string | Hayır | Tümü | Filtre: "banka_havalesi" | "mobil_cuzdan" | "nakit_teslim" | "ev_teslim" | "kart" |

Dönen Değer: Promise<KarsilastirmaSonucu>

interface KarsilastirmaSonucu {
  sorgu: KarsilastirmaParametreleri;   // Kullanılan parametreler
  zamanDamgasi: string;                // ISO datetime
  piyasaKuru: number;                  // Kullanılan piyasa orta kuru
  kurKaynagi: string;                  // "ecb" veya "exchangerate_api"
  sonuclar: TransferHesapSonucu[];     // Sıralı sağlayıcı sonuçları
  desteklemeyenler: Array<{            // Bu koridoru desteklemeyen sağlayıcılar
    saglayiciId: string;
    sebep: string;
  }>;
}

hesapla(saglayiciId, miktar, gonderenParaBirimi, aliciParaBirimi, gonderenUlke?, aliciUlke?) — Tek Sağlayıcı Hesapla

Belirli bir sağlayıcı için ayrıntılı maliyet hesaplaması yapar.

Dönen Değer: Promise<TransferHesapSonucu>

interface TransferHesapSonucu {
  saglayiciId: string;          // "wise"
  saglayiciAd: string;          // "Wise (TransferWise)"
  gonderenMiktar: number;       // 10000
  gonderenParaBirimi: string;   // "TRY"
  aliciMiktar: number;          // 285.50
  aliciParaBirimi: string;      // "USD"
  uyguladigiKur: number;        // Sağlayıcının uyguladığı kur
  piyasaKuru: number;           // Gerçek piyasa orta kuru
  kurMarjiYuzde: number;        // Kur marjı yüzdesi
  kurMarjiMaliyet: number;      // Kur marjından kaynaklanan maliyet
  transferUcreti: number;       // Transfer ücreti
  toplamMaliyet: number;        // Toplam maliyet (ücret + kur marjı)
  tahminiSure: {                // Transfer süresi
    min: number;                // Minimum saat
    maks: number;               // Maksimum saat
    aciklama: string;           // "1 saat - 2 iş günü"
  };
  odemeYontemleri: string[];    // Desteklenen ödeme yöntemleri
  puan: number;                 // Sağlayıcı puanı (1-5)
}

kurGetir(kaynakParaBirimi, hedefParaBirimi) — Döviz Kuru Getir

ECB veya exchangerate-api'den canlı döviz kuru getirir. Sonuçlar 30 dakika önbelleklenir.

Dönen Değer: Promise<DovizKuru>

interface DovizKuru {
  kaynak: string;              // "ecb" veya "exchangerate_api"
  kaynakParaBirimi: string;    // "TRY"
  hedefParaBirimi: string;     // "USD"
  kur: number;                 // 0.02855
  tarih: string;               // "2026-04-03"
  zamanDamgasi: string;        // ISO datetime
}

enUygun(parametreler) — En Uygun Sağlayıcıyı Bul

En düşük toplam maliyetli sağlayıcıyı döndürür. Parametreler karsilastir() ile aynıdır. Hiçbir sağlayıcı uygun değilse null döner.

Dönen Değer: Promise<TransferHesapSonucu | null>

saglayicilar() — Sağlayıcıları Listele

Kayıtlı tüm sağlayıcıların tam bilgilerini döndürür. Senkron fonksiyondur.

Dönen Değer: Saglayici[]

saglayiciEkle(saglayici) — Yeni Sağlayıcı Ekle

Plugin sistemiyle yeni sağlayıcı ekler. Aynı id ile eklenen sağlayıcı mevcut kaydı günceller.

saglayiciKaldir(id) — Sağlayıcı Kaldır

Belirtilen sağlayıcıyı kayıttan kaldırır. Başarılıysa true, bulunamazsa false döner.

ulkeDestegi(ulkeKodu) — Ülke Desteği Kontrol Et

Bir ülkenin hangi sağlayıcılar tarafından gönderim ve alım için desteklendiğini kontrol eder.

desteklenenUlkeler() — Tüm Ülkeleri Listele

En az bir sağlayıcı tarafından desteklenen tüm ülkeleri döndürür.

Dönen Değer: Array<{ kod: string; ad: string }>

desteklenenParaBirimleri() — Tüm Para Birimlerini Listele

Sistemde tanımlı tüm para birimlerini döndürür.

Dönen Değer: Array<{ kod: string; ad: string; sembol: string }>

kurAyarla(ayarlar) — Döviz Kuru Ayarları

Kur kaynağı önceliğini, önbellek süresini ve API anahtarlarını yapılandırır.

import { kurAyarla } from "para-transferi";

kurAyarla({
  onbellekSuresi: 3600,    // Önbellek süresi (saniye), varsayılan: 1800
  kaynakOnceligi: ["exchangerate_api", "ecb"],  // Kaynak öncelik sırası
  apiAnahtarlari: {
    fixer: "API_ANAHTARINIZ",  // Opsiyonel ek kur kaynağı
  },
});

sifirla() — Varsayılanlara Dön

Tüm eklenen/kaldırılan sağlayıcıları sıfırlar, kur önbelleğini temizler ve 6 varsayılan sağlayıcıyı yeniden yükler.


Plugin Sistemi — Özel Sağlayıcı Ekleme

para-transferi'nin en güçlü özelliklerinden biri genişletilebilir plugin sistemidir. Herhangi bir bankayı, fintech'i veya yerel havale servisini kolayca ekleyebilirsiniz:

import { saglayiciEkle, karsilastir } from "para-transferi";

// Yerel bankanızı sağlayıcı olarak ekleyin
saglayiciEkle({
  id: "ziraat-bankasi",
  ad: "Ziraat Bankası",
  webSitesi: "https://www.ziraatbank.com.tr",
  kurulusYili: 1863,
  merkezUlke: "TR",
  aciklama: "Türkiye'nin en büyük kamu bankası ile uluslararası havale",
  gonderenUlkeler: ["TR"],
  aliciUlkeler: ["US", "DE", "GB", "FR", "NL", "SA", "AE"],
  gonderenParaBirimleri: ["TRY"],
  aliciParaBirimleri: ["USD", "EUR", "GBP", "SAR", "AED"],
  ucretYapisi: {
    sabitUcret: 40,
    sabitUcretParaBirimi: "TRY",
    yuzdeUcret: 0.2,
    minimumUcret: 40,
    maksimumUcret: 500,
    aciklama: "40 TL sabit + %0.2 komisyon, maks 500 TL",
    koridorUcretleri: {
      "TR_DE": { sabitUcret: 30 },  // Almanya'ya özel ücret
    },
  },
  transferYontemleri: [
    { tip: "banka_havalesi", ad: "SWIFT Havalesi", desteklenenUlkeler: [] },
  ],
  transferHizlari: [
    {
      yontem: "banka_havalesi",
      minimumSaat: 24,
      maksimumSaat: 72,
      aciklama: "1-3 iş günü",
    },
  ],
  limitler: {
    minimumGonderim: 100,
    maksimumGonderim: 500000,
    paraBirimi: "TRY",
    gunlukLimit: 500000,
  },
  kurMarjiYuzde: 2.5,
  odemeYontemleri: ["banka_havalesi", "swift"],
  puan: 3.8,
  duzenleme: {
    lisanslar: ["BDDK", "SPK"],
    duzenleyiciUlkeler: ["TR"],
  },
});

// Artık Ziraat Bankası da karşılaştırmada yer alır
const sonuc = await karsilastir({
  gonderenUlke: "TR",
  aliciUlke: "DE",
  gonderenParaBirimi: "TRY",
  aliciParaBirimi: "EUR",
  miktar: 20000,
});

console.log(`${sonuc.sonuclar.length} sağlayıcı karşılaştırıldı`);

Hata Yönetimi

Paket, geliştirici deneyimini kolaylaştırmak için özel hata sınıfları kullanır. Her hata bir kod alanı içerir:

import {
  karsilastir,
  ParaTransferiHatasi,
  GecersizParametreHatasi,
  SaglayiciBulunamadiHatasi,
  KurGetirmeHatasi,
} from "para-transferi";

try {
  const sonuc = await karsilastir({
    gonderenUlke: "TR",
    aliciUlke: "US",
    gonderenParaBirimi: "TRY",
    aliciParaBirimi: "USD",
    miktar: 10000,
  });
} catch (hata) {
  if (hata instanceof GecersizParametreHatasi) {
    console.error("Geçersiz girdi:", hata.message);
  } else if (hata instanceof KurGetirmeHatasi) {
    console.error("Döviz kuru alınamadı:", hata.message);
  } else if (hata instanceof ParaTransferiHatasi) {
    console.error(`Hata [${hata.kod}]:`, hata.message);
  }
}

Hata Sınıfları

| Hata Sınıfı | Kod | Ne Zaman Fırlatılır | |-------------|-----|---------------------| | ParaTransferiHatasi | — | Tüm hataların temel sınıfı | | GecersizParametreHatasi | GECERSIZ_PARAMETRE | Geçersiz ülke kodu, para birimi veya miktar | | SaglayiciBulunamadiHatasi | SAGLAYICI_BULUNAMADI | hesapla() ile olmayan sağlayıcı ID'si kullanıldığında | | KoridorDesteklenmiyorHatasi | KORIDOR_DESTEKLENMIYOR | Gönderen-alıcı ülke kombinasyonu hiç desteklenmediğinde | | KurGetirmeHatasi | KUR_GETIRME_HATASI | ECB ve yedek kaynaklar da dahil tüm kur API'leri başarısız olduğunda | | LimitAsimiHatasi | LIMIT_ASIMI | Transfer miktarı sağlayıcının limitlerini aştığında |


Desteklenen Ülkeler

Avrupa

Türkiye (TR), Almanya (DE), Birleşik Krallık (GB), Fransa (FR), Hollanda (NL), Belçika (BE), Avusturya (AT), İsviçre (CH), İsveç (SE), Norveç (NO), Danimarka (DK), Finlandiya (FI), İtalya (IT), İspanya (ES), Portekiz (PT), Yunanistan (GR), Polonya (PL), Çekya (CZ), Macaristan (HU), Romanya (RO), Bulgaristan (BG), Hırvatistan (HR), İrlanda (IE)

Amerika

Amerika Birleşik Devletleri (US), Kanada (CA), Brezilya (BR), Meksika (MX), Kolombiya (CO), Arjantin (AR), Şili (CL), Peru (PE)

Asya-Pasifik

Japonya (JP), Çin (CN), Hindistan (IN), Pakistan (PK), Bangladeş (BD), Filipinler (PH), Malezya (MY), Singapur (SG), Tayland (TH), Endonezya (ID), Vietnam (VN), Güney Kore (KR), Avustralya (AU), Yeni Zelanda (NZ)

Orta Doğu ve Afrika

Birleşik Arap Emirlikleri (AE), Suudi Arabistan (SA), İsrail (IL), Mısır (EG), Fas (MA), Nijerya (NG), Gana (GH), Kenya (KE), Güney Afrika (ZA)

Diğer

Rusya (RU), Ukrayna (UA), Gürcistan (GE), Azerbaycan (AZ)


Desteklenen Para Birimleri

TRY Türk Lirası, USD Amerikan Doları, EUR Euro, GBP İngiliz Sterlini, CHF İsviçre Frangı, SEK İsveç Kronu, NOK Norveç Kronu, DKK Danimarka Kronu, PLN Polonya Zlotisi, CZK Çek Korunası, HUF Macar Forinti, RON Romen Leyi, BGN Bulgar Levası, CAD Kanada Doları, AUD Avustralya Doları, NZD Yeni Zelanda Doları, JPY Japon Yeni, CNY Çin Yuanı, INR Hindistan Rupisi, PKR Pakistan Rupisi, BDT Bangladeş Takası, PHP Filipin Pesosu, MYR Malezya Ringgiti, SGD Singapur Doları, THB Tayland Bahtı, IDR Endonezya Rupisi, VND Vietnam Dongu, KRW Güney Kore Wonu, AED BAE Dirhemi, SAR Suudi Riyali, EGP Mısır Lirası, MAD Fas Dirhemi, NGN Nijerya Nairası, GHS Gana Sedisi, KES Kenya Şilini, ZAR Güney Afrika Randı, BRL Brezilya Reali, MXN Meksika Pesosu, COP Kolombiya Pesosu, ARS Arjantin Pesosu, CLP Şili Pesosu, PEN Peru Solu, ILS İsrail Şekeli, RUB Rus Rublesi, UAH Ukrayna Grivnası, GEL Gürcistan Larisi, AZN Azerbaycan Manatı


Popüler Transfer Koridorları

Bu paket ile en sık kullanılan transfer rotalarını kolayca karşılaştırabilirsiniz:

| Koridor | Açıklama | |---------|----------| | Türkiye → Almanya (TRY → EUR) | Almanya'daki Türk diasporasına para gönderimi | | Türkiye → ABD (TRY → USD) | Yurt dışı eğitim, iş ve aile transferleri | | Türkiye → İngiltere (TRY → GBP) | İngiltere'deki aileye havale | | Almanya → Türkiye (EUR → TRY) | Gurbetçi havaleleri | | ABD → Türkiye (USD → TRY) | Yurt dışından Türkiye'ye para gönderimi | | İngiltere → Türkiye (GBP → TRY) | İngiltere'den Türkiye'ye transfer | | Türkiye → Hollanda (TRY → EUR) | Hollanda'ya para transferi | | Türkiye → Fransa (TRY → EUR) | Fransa'ya para transferi | | Türkiye → Suudi Arabistan (TRY → SAR) | İşçi havaleleri | | Türkiye → BAE (TRY → AED) | Dubai ve Abu Dhabi'ye transfer |


Kullanım Senaryoları

Fintech Uygulamaları

Para transferi karşılaştırma özelliğini kendi uygulamanıza entegre edin:

import { karsilastir, saglayiciEkle } from "para-transferi";

// API endpoint'iniz
app.get("/api/karsilastir", async (req, res) => {
  const { gonderen, alici, paraBirimi, hedefParaBirimi, miktar } = req.query;

  const sonuc = await karsilastir({
    gonderenUlke: gonderen,
    aliciUlke: alici,
    gonderenParaBirimi: paraBirimi,
    aliciParaBirimi: hedefParaBirimi,
    miktar: Number(miktar),
  });

  res.json(sonuc);
});

Döviz Kuru Takip Botu

import { kurGetir } from "para-transferi";

const paraCiftleri = [
  ["TRY", "USD"],
  ["TRY", "EUR"],
  ["TRY", "GBP"],
  ["EUR", "USD"],
];

for (const [kaynak, hedef] of paraCiftleri) {
  const kur = await kurGetir(kaynak, hedef);
  console.log(`${kaynak}/${hedef}: ${kur.kur}`);
}

Maliyet Uyarı Sistemi

import { enUygun } from "para-transferi";

async function maliyetKontrol() {
  const enIyi = await enUygun({
    gonderenUlke: "TR",
    aliciUlke: "DE",
    gonderenParaBirimi: "TRY",
    aliciParaBirimi: "EUR",
    miktar: 10000,
  });

  if (enIyi && enIyi.toplamMaliyet < 200) {
    console.log("Transfer maliyeti düşük, şimdi gönderme zamanı!");
  }
}

Maliyet Hesaplama Mantığı

para-transferi'nin maliyet hesaplamasını anlamak, sonuçları doğru yorumlamanız için önemlidir:

Transfer Ücreti

Her sağlayıcının ücret yapısı farklıdır:

transferÜcreti = max(minimumÜcret, sabitÜcret + (miktar × yüzdeÜcret / 100))

// Maksimum ücret varsa:
transferÜcreti = min(transferÜcreti, maksimumÜcret)

Kur Marjı Maliyeti

Bazı sağlayıcılar (Wise hariç) piyasa kurunun altında bir kur uygular:

uyguladigiKur = piyasaKuru × (1 - kurMarjıYüzde / 100)
kurMarjıMaliyeti = miktar × (kurMarjıYüzde / 100)

Toplam Maliyet

toplamMaliyet = transferÜcreti + kurMarjıMaliyeti

Alıcı Miktar

alıcıMiktar = (miktar - transferÜcreti) × uyguladigiKur

Not: Wise gibi %0 kur marjı uygulayan sağlayıcılarda toplam maliyet = transfer ücreti olur. OFX ve XE gibi transfer ücreti almayan sağlayıcılarda ise toplam maliyet = kur marjı maliyeti olur.


Veri Kaynakları ve Güvenilirlik

| Veri Tipi | Kaynak | Güncelleme | |-----------|--------|------------| | Döviz kurları | ECB (Avrupa Merkez Bankası) | Günlük (iş günleri) | | Yedek kur kaynağı | exchangerate-api.com | Gerçek zamanlı | | Sağlayıcı ücretleri | Resmi web siteleri | Paket güncellemeleriyle | | Sağlayıcı bilgileri | Resmi belgeler ve lisans kayıtları | Paket güncellemeleriyle |

Uyarı: Sağlayıcı ücretleri ve kur marjları zamanla değişebilir. Bu paket genel bir karşılaştırma aracıdır. Kesin tutarlar için transfer öncesinde sağlayıcının resmi sitesini kontrol edin.


Sıkça Sorulan Sorular (SSS)

Bu paket gerçek para transferi yapıyor mu?

Hayır. para-transferi yalnızca karşılaştırma ve hesaplama kütüphanesidir. Gerçek para transferi yapmaz, sağlayıcı API'lerine bağlanmaz. Transfer yapmak için sağlayıcıların kendi platformlarını kullanmanız gerekir.

Döviz kurları ne kadar güncel?

ECB kurları her iş günü güncellenir. Paket içinde 30 dakikalık bir önbellek mekanizması vardır. kurAyarla() ile önbellek süresini değiştirebilirsiniz.

Kendi sağlayıcımı nasıl eklerim?

saglayiciEkle() fonksiyonu ile Saglayici arayüzüne uygun bir obje geçirerek herhangi bir banka veya fintech servisini ekleyebilirsiniz. Detaylar için Plugin Sistemi bölümüne bakın.

Sağlayıcı verileri ne kadar doğru?

Veriler sağlayıcıların resmi web sitelerinden derlenmiştir. Ancak ücret yapıları zaman içinde değişebilir. Kritik kararlar için transfer öncesi sağlayıcının güncel ücretlerini doğrulayın.

CommonJS projelerimde kullanabilir miyim?

Evet. Paket hem ESM (import) hem CJS (require) formatını destekler:

// ESM
import { karsilastir } from "para-transferi";

// CommonJS
const { karsilastir } = require("para-transferi");

Offline çalışır mı?

Sağlayıcı listesi, ülke/para birimi verileri ve maliyet hesaplama mantığı offline çalışır. Ancak karsilastir(), hesapla() ve kurGetir() gibi canlı döviz kuru gerektiren fonksiyonlar internet bağlantısına ihtiyaç duyar.

Hangi Node.js versiyonları destekleniyor?

Node.js 18 ve üstü. Paket native fetch() API'sini kullandığından Node.js 18+ gereklidir.


Gereksinimler

  • Node.js 18 veya üstü
  • İnternet bağlantısı (canlı kur fonksiyonları için)

Lisans

MIT License — Ticari ve kişisel projelerde serbestçe kullanabilirsiniz.

Katkıda Bulunma

Katkılarınızı bekliyoruz!

  1. Bu repoyu fork edin
  2. Yeni bir branch oluşturun (git checkout -b yeni-ozellik)
  3. Değişikliklerinizi commit edin (git commit -m "Yeni sağlayıcı eklendi")
  4. Branch'i push edin (git push origin yeni-ozellik)
  5. Pull Request oluşturun

Büyük değişiklikler için önce bir issue açarak tartışmaya başlayın.


İlgili Bağlantılar

  • paratransferleri.com — Uluslararası para transferi karşılaştırma platformu
  • Wise — Gerçek orta piyasa kuru ile transfer
  • Remitly — Hızlı uluslararası para transferi
  • XE — Döviz kuru ve para transferi
  • OFX — Büyük tutarlı transferler
  • WorldRemit — Çoklu teslimat seçenekleri
  • Revolut — Dijital bankacılık ve transfer

paratransferleri.com tarafından geliştirilmiştir.