para-transferi 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +799 -0
- package/dist/index.d.mts +101 -0
- package/dist/index.d.ts +101 -0
- package/dist/index.js +1748 -0
- package/dist/index.mjs +1704 -0
- package/dist/saglayicilar/index.d.mts +15 -0
- package/dist/saglayicilar/index.d.ts +15 -0
- package/dist/saglayicilar/index.js +1054 -0
- package/dist/saglayicilar/index.mjs +1022 -0
- package/dist/tipler-BiWYcUOV.d.mts +160 -0
- package/dist/tipler-BiWYcUOV.d.ts +160 -0
- package/package.json +64 -0
package/README.md
ADDED
|
@@ -0,0 +1,799 @@
|
|
|
1
|
+
# para-transferi
|
|
2
|
+
|
|
3
|
+
**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.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/para-transferi)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](https://www.typescriptlang.org/)
|
|
9
|
+
[](https://www.npmjs.com/package/para-transferi)
|
|
10
|
+
|
|
11
|
+
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.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Neden `para-transferi`?
|
|
16
|
+
|
|
17
|
+
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:
|
|
18
|
+
|
|
19
|
+
- **Gerçek maliyeti görün** — Sadece transfer ücretini değil, gizli kur marjı maliyetini de hesaplayın
|
|
20
|
+
- **Otomatik karşılaştırma yapın** — Tek bir fonksiyon çağrısıyla tüm sağlayıcıları sıralayın
|
|
21
|
+
- **Uygulamanıza entegre edin** — Fintech uygulamaları, karşılaştırma siteleri veya kişisel projelerinize kolayca ekleyin
|
|
22
|
+
- **Canlı döviz kurları ile çalışın** — ECB (Avrupa Merkez Bankası) verileriyle gerçek zamanlı hesaplama
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Özellikler
|
|
27
|
+
|
|
28
|
+
| Özellik | Detay |
|
|
29
|
+
|---------|-------|
|
|
30
|
+
| **6 Yerleşik Sağlayıcı** | Wise, Remitly, XE, OFX, WorldRemit, Revolut |
|
|
31
|
+
| **Canlı Döviz Kurları** | ECB ve exchangerate-api entegrasyonu, 30 dakika önbellek |
|
|
32
|
+
| **Toplam Maliyet Hesaplama** | Transfer ücreti + kur marjı + koridor bazlı özel ücretler |
|
|
33
|
+
| **Akıllı Karşılaştırma** | Maliyet, hız, puan veya kura göre sıralama |
|
|
34
|
+
| **56 Ülke Desteği** | Türkiye, ABD, Almanya, İngiltere, Fransa ve 50+ ülke |
|
|
35
|
+
| **46 Para Birimi** | TRY, USD, EUR, GBP, CHF ve 40+ para birimi |
|
|
36
|
+
| **Plugin Sistemi** | Özel sağlayıcı ekleme, kaldırma ve güncelleme |
|
|
37
|
+
| **TypeScript Desteği** | Tam tip tanımları, IntelliSense desteği |
|
|
38
|
+
| **Sıfır Bağımlılık** | Node.js 18+ native `fetch()`, ek paket gerektirmez |
|
|
39
|
+
| **Dual Format** | ESM ve CommonJS (CJS) çıktı desteği |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Kurulum
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install para-transferi
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# veya yarn ile
|
|
51
|
+
yarn add para-transferi
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# veya pnpm ile
|
|
56
|
+
pnpm add para-transferi
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Hızlı Başlangıç
|
|
62
|
+
|
|
63
|
+
### Sağlayıcıları Karşılaştır
|
|
64
|
+
|
|
65
|
+
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:
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import { karsilastir } from "para-transferi";
|
|
69
|
+
|
|
70
|
+
const sonuc = await karsilastir({
|
|
71
|
+
gonderenUlke: "TR",
|
|
72
|
+
aliciUlke: "US",
|
|
73
|
+
gonderenParaBirimi: "TRY",
|
|
74
|
+
aliciParaBirimi: "USD",
|
|
75
|
+
miktar: 10000,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
console.log(`Piyasa kuru: ${sonuc.piyasaKuru}`);
|
|
79
|
+
console.log(`Kur kaynağı: ${sonuc.kurKaynagi}`);
|
|
80
|
+
console.log(`Karşılaştırılan sağlayıcı sayısı: ${sonuc.sonuclar.length}`);
|
|
81
|
+
|
|
82
|
+
// En ucuzdan en pahalıya sıralı sonuçlar
|
|
83
|
+
for (const s of sonuc.sonuclar) {
|
|
84
|
+
console.log(`
|
|
85
|
+
${s.saglayiciAd}
|
|
86
|
+
Transfer ücreti: ${s.transferUcreti} TRY
|
|
87
|
+
Kur marjı maliyeti: ${s.kurMarjiMaliyet} TRY
|
|
88
|
+
Toplam maliyet: ${s.toplamMaliyet} TRY
|
|
89
|
+
Alıcı alacak: ${s.aliciMiktar} USD
|
|
90
|
+
Tahmini süre: ${s.tahminiSure.aciklama}
|
|
91
|
+
`);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Desteklemeyen sağlayıcıları da görebilirsiniz
|
|
95
|
+
for (const d of sonuc.desteklemeyenler) {
|
|
96
|
+
console.log(`${d.saglayiciId}: ${d.sebep}`);
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### En Uygun Sağlayıcıyı Bul
|
|
101
|
+
|
|
102
|
+
Tek satırda en düşük maliyetli sağlayıcıyı bulun:
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
import { enUygun } from "para-transferi";
|
|
106
|
+
|
|
107
|
+
const enIyi = await enUygun({
|
|
108
|
+
gonderenUlke: "TR",
|
|
109
|
+
aliciUlke: "DE",
|
|
110
|
+
gonderenParaBirimi: "TRY",
|
|
111
|
+
aliciParaBirimi: "EUR",
|
|
112
|
+
miktar: 5000,
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
if (enIyi) {
|
|
116
|
+
console.log(`En uygun sağlayıcı: ${enIyi.saglayiciAd}`);
|
|
117
|
+
console.log(`Toplam maliyet: ${enIyi.toplamMaliyet} TRY`);
|
|
118
|
+
console.log(`Alıcı alacak: ${enIyi.aliciMiktar} EUR`);
|
|
119
|
+
console.log(`Uygulanan kur: ${enIyi.uyguladigiKur}`);
|
|
120
|
+
console.log(`Piyasa kuru: ${enIyi.piyasaKuru}`);
|
|
121
|
+
console.log(`Kur marjı: %${enIyi.kurMarjiYuzde}`);
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Tek Sağlayıcı ile Maliyet Hesapla
|
|
126
|
+
|
|
127
|
+
Belirli bir sağlayıcının ücretlerini ayrıntılı hesaplayın:
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import { hesapla } from "para-transferi";
|
|
131
|
+
|
|
132
|
+
const sonuc = await hesapla("wise", 10000, "TRY", "USD", "TR", "US");
|
|
133
|
+
|
|
134
|
+
console.log(`Sağlayıcı: ${sonuc.saglayiciAd}`);
|
|
135
|
+
console.log(`Gönderilen: ${sonuc.gonderenMiktar} ${sonuc.gonderenParaBirimi}`);
|
|
136
|
+
console.log(`Alıcı alacak: ${sonuc.aliciMiktar} ${sonuc.aliciParaBirimi}`);
|
|
137
|
+
console.log(`Transfer ücreti: ${sonuc.transferUcreti} TRY`);
|
|
138
|
+
console.log(`Kur marjı maliyeti: ${sonuc.kurMarjiMaliyet} TRY`);
|
|
139
|
+
console.log(`Toplam maliyet: ${sonuc.toplamMaliyet} TRY`);
|
|
140
|
+
console.log(`Uygulanan kur: ${sonuc.uyguladigiKur}`);
|
|
141
|
+
console.log(`Piyasa orta kuru: ${sonuc.piyasaKuru}`);
|
|
142
|
+
console.log(`Tahmini süre: ${sonuc.tahminiSure.aciklama}`);
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Canlı Döviz Kuru Getir
|
|
146
|
+
|
|
147
|
+
ECB veya exchangerate-api'den güncel döviz kurlarını çekin:
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
import { kurGetir } from "para-transferi";
|
|
151
|
+
|
|
152
|
+
const tryUsd = await kurGetir("TRY", "USD");
|
|
153
|
+
console.log(`1 TRY = ${tryUsd.kur} USD`);
|
|
154
|
+
console.log(`Kaynak: ${tryUsd.kaynak}`);
|
|
155
|
+
console.log(`Tarih: ${tryUsd.tarih}`);
|
|
156
|
+
|
|
157
|
+
const eurTry = await kurGetir("EUR", "TRY");
|
|
158
|
+
console.log(`1 EUR = ${eurTry.kur} TRY`);
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Ülke ve Koridor Desteğini Kontrol Et
|
|
162
|
+
|
|
163
|
+
Bir ülkenin hangi sağlayıcılar tarafından desteklendiğini öğrenin:
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
import { ulkeDestegi, desteklenenUlkeler, desteklenenParaBirimleri } from "para-transferi";
|
|
167
|
+
|
|
168
|
+
// Türkiye desteği
|
|
169
|
+
const tr = ulkeDestegi("TR");
|
|
170
|
+
console.log(`Ülke: ${tr.ulkeAdi}`);
|
|
171
|
+
console.log(`Gönderi destekleyen: ${tr.destekleyenSaglayicilar.filter(s => s.gonderimVar).length} sağlayıcı`);
|
|
172
|
+
console.log(`Alım destekleyen: ${tr.destekleyenSaglayicilar.filter(s => s.alimVar).length} sağlayıcı`);
|
|
173
|
+
|
|
174
|
+
// Tüm desteklenen ülkeler
|
|
175
|
+
const ulkeler = desteklenenUlkeler();
|
|
176
|
+
console.log(`Toplam ${ulkeler.length} ülke destekleniyor`);
|
|
177
|
+
|
|
178
|
+
// Tüm para birimleri
|
|
179
|
+
const birimler = desteklenenParaBirimleri();
|
|
180
|
+
console.log(`Toplam ${birimler.length} para birimi destekleniyor`);
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Sağlayıcıları Listele
|
|
184
|
+
|
|
185
|
+
Kayıtlı tüm sağlayıcıların detaylı bilgilerine erişin:
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
import { saglayicilar } from "para-transferi";
|
|
189
|
+
|
|
190
|
+
const liste = saglayicilar();
|
|
191
|
+
|
|
192
|
+
for (const s of liste) {
|
|
193
|
+
console.log(`
|
|
194
|
+
${s.ad} (${s.id})
|
|
195
|
+
Web: ${s.webSitesi}
|
|
196
|
+
Kuruluş: ${s.kurulusYili}
|
|
197
|
+
Merkez: ${s.merkezUlke}
|
|
198
|
+
Puan: ${s.puan}/5
|
|
199
|
+
Kur marjı: %${s.kurMarjiYuzde}
|
|
200
|
+
Lisanslar: ${s.duzenleme.lisanslar.join(", ")}
|
|
201
|
+
Gönderen ülke sayısı: ${s.gonderenUlkeler.length}
|
|
202
|
+
Alıcı ülke sayısı: ${s.aliciUlkeler.length}
|
|
203
|
+
Ödeme yöntemleri: ${s.odemeYontemleri.join(", ")}
|
|
204
|
+
`);
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Desteklenen Sağlayıcılar
|
|
211
|
+
|
|
212
|
+
### Wise (TransferWise)
|
|
213
|
+
|
|
214
|
+
| Bilgi | Detay |
|
|
215
|
+
|-------|-------|
|
|
216
|
+
| Kuruluş | 2011, Londra |
|
|
217
|
+
| Kur Marjı | %0 (orta piyasa kuru) |
|
|
218
|
+
| Ücret Modeli | %0.4-%1.5 arası değişen ücretler |
|
|
219
|
+
| Transfer Hızı | 30 dakika - 2 iş günü |
|
|
220
|
+
| Lisanslar | FCA, FinCEN, ASIC, MAS |
|
|
221
|
+
| Ödeme | Banka havalesi, kart, Apple Pay, Google Pay, SWIFT, SEPA |
|
|
222
|
+
|
|
223
|
+
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.
|
|
224
|
+
|
|
225
|
+
### Remitly
|
|
226
|
+
|
|
227
|
+
| Bilgi | Detay |
|
|
228
|
+
|-------|-------|
|
|
229
|
+
| Kuruluş | 2011, Seattle |
|
|
230
|
+
| Kur Marjı | ~%1.5 |
|
|
231
|
+
| Ücret Modeli | Sabit ücret ($2.99 - $3.99) |
|
|
232
|
+
| Transfer Hızı | Dakikalar (Express) - 5 iş günü (Economy) |
|
|
233
|
+
| Lisanslar | FinCEN, FCA, ASIC |
|
|
234
|
+
| Ödeme | Banka havalesi, banka kartı, kredi kartı |
|
|
235
|
+
|
|
236
|
+
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.
|
|
237
|
+
|
|
238
|
+
### XE Money Transfer
|
|
239
|
+
|
|
240
|
+
| Bilgi | Detay |
|
|
241
|
+
|-------|-------|
|
|
242
|
+
| Kuruluş | 1993, Kanada |
|
|
243
|
+
| Kur Marjı | ~%1.0 |
|
|
244
|
+
| Ücret Modeli | Transfer ücreti yok (maliyet kur marjına dahil) |
|
|
245
|
+
| Transfer Hızı | 1-4 iş günü |
|
|
246
|
+
| Lisanslar | FinCEN, FCA, ASIC, FINTRAC |
|
|
247
|
+
| Ödeme | Banka havalesi, SWIFT |
|
|
248
|
+
|
|
249
|
+
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.
|
|
250
|
+
|
|
251
|
+
### OFX
|
|
252
|
+
|
|
253
|
+
| Bilgi | Detay |
|
|
254
|
+
|-------|-------|
|
|
255
|
+
| Kuruluş | 1998, Sydney |
|
|
256
|
+
| Kur Marjı | ~%0.4 |
|
|
257
|
+
| Ücret Modeli | Transfer ücreti yok (maliyet kur marjına dahil) |
|
|
258
|
+
| Transfer Hızı | 1-3 iş günü |
|
|
259
|
+
| Lisanslar | ASIC, FCA, FinCEN, FINTRAC, MAS |
|
|
260
|
+
| Ödeme | Banka havalesi, SWIFT |
|
|
261
|
+
|
|
262
|
+
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.
|
|
263
|
+
|
|
264
|
+
### WorldRemit
|
|
265
|
+
|
|
266
|
+
| Bilgi | Detay |
|
|
267
|
+
|-------|-------|
|
|
268
|
+
| Kuruluş | 2010, Londra |
|
|
269
|
+
| Kur Marjı | ~%1.8 |
|
|
270
|
+
| Ücret Modeli | Sabit ücret ($1.99 - $3.99) |
|
|
271
|
+
| Transfer Hızı | Dakikalar (mobil cüzdan) - 3 iş günü |
|
|
272
|
+
| Lisanslar | FCA, FinCEN, ASIC, FINTRAC |
|
|
273
|
+
| Ödeme | Banka havalesi, banka kartı, kredi kartı, Apple Pay |
|
|
274
|
+
|
|
275
|
+
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.
|
|
276
|
+
|
|
277
|
+
### Revolut
|
|
278
|
+
|
|
279
|
+
| Bilgi | Detay |
|
|
280
|
+
|-------|-------|
|
|
281
|
+
| Kuruluş | 2015, Londra |
|
|
282
|
+
| Kur Marjı | ~%0.3 (hafta içi), ~%1.3 (hafta sonu) |
|
|
283
|
+
| Ücret Modeli | Standart: aylık ücretsiz limit üzeri %0.5, Premium/Metal: sınırsız |
|
|
284
|
+
| Transfer Hızı | Anlık (Revolut arası) - 3 iş günü (SWIFT) |
|
|
285
|
+
| Lisanslar | ECB, FCA, FinCEN |
|
|
286
|
+
| Ödeme | Banka havalesi, kart, Apple Pay, Google Pay, SWIFT, SEPA |
|
|
287
|
+
|
|
288
|
+
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.
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Sağlayıcı Karşılaştırma Tablosu
|
|
293
|
+
|
|
294
|
+
| Sağlayıcı | Kur Marjı | Ücret | Min. Transfer | Maks. Transfer | Hız | Puan |
|
|
295
|
+
|-----------|-----------|-------|---------------|----------------|-----|------|
|
|
296
|
+
| **Wise** | %0 | %0.4-1.5 | $1 | $1.500.000 | 30dk-2 gün | 4.6/5 |
|
|
297
|
+
| **Revolut** | %0.3 | %0-0.5 | $1 | $250.000 | Anlık-3 gün | 4.5/5 |
|
|
298
|
+
| **Remitly** | %1.5 | $2.99-3.99 | $25 | $25.000 | Dakikalar-5 gün | 4.4/5 |
|
|
299
|
+
| **OFX** | %0.4 | Yok | $250 | $5.000.000 | 1-3 gün | 4.3/5 |
|
|
300
|
+
| **XE** | %1.0 | Yok | $100 | $500.000 | 1-4 gün | 4.2/5 |
|
|
301
|
+
| **WorldRemit** | %1.8 | $1.99-3.99 | $10 | $10.000 | Dakikalar-3 gün | 4.1/5 |
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## API Referansı
|
|
306
|
+
|
|
307
|
+
### `karsilastir(parametreler)` — Sağlayıcıları Karşılaştır
|
|
308
|
+
|
|
309
|
+
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.
|
|
310
|
+
|
|
311
|
+
**Parametreler:**
|
|
312
|
+
|
|
313
|
+
| Alan | Tip | Zorunlu | Varsayılan | Açıklama |
|
|
314
|
+
|------|-----|---------|------------|----------|
|
|
315
|
+
| `gonderenUlke` | `string` | Evet | — | Gönderen ülke kodu (ISO 3166-1 alpha-2, ör: `"TR"`) |
|
|
316
|
+
| `aliciUlke` | `string` | Evet | — | Alıcı ülke kodu (ör: `"US"`, `"DE"`, `"GB"`) |
|
|
317
|
+
| `gonderenParaBirimi` | `string` | Evet | — | Gönderen para birimi (ISO 4217, ör: `"TRY"`) |
|
|
318
|
+
| `aliciParaBirimi` | `string` | Evet | — | Alıcı para birimi (ör: `"USD"`, `"EUR"`) |
|
|
319
|
+
| `miktar` | `number` | Evet | — | Gönderilecek miktar (gönderen para birimi cinsinden) |
|
|
320
|
+
| `siralamaKriteri` | `string` | Hayır | `"toplam_maliyet"` | Sıralama: `"toplam_maliyet"` \| `"hiz"` \| `"puan"` \| `"kur"` |
|
|
321
|
+
| `saglayiciFiltresi` | `string[]` | Hayır | Tümü | Sadece belirli sağlayıcılar (ör: `["wise", "revolut"]`) |
|
|
322
|
+
| `transferYontemi` | `string` | Hayır | Tümü | Filtre: `"banka_havalesi"` \| `"mobil_cuzdan"` \| `"nakit_teslim"` \| `"ev_teslim"` \| `"kart"` |
|
|
323
|
+
|
|
324
|
+
**Dönen Değer:** `Promise<KarsilastirmaSonucu>`
|
|
325
|
+
|
|
326
|
+
```typescript
|
|
327
|
+
interface KarsilastirmaSonucu {
|
|
328
|
+
sorgu: KarsilastirmaParametreleri; // Kullanılan parametreler
|
|
329
|
+
zamanDamgasi: string; // ISO datetime
|
|
330
|
+
piyasaKuru: number; // Kullanılan piyasa orta kuru
|
|
331
|
+
kurKaynagi: string; // "ecb" veya "exchangerate_api"
|
|
332
|
+
sonuclar: TransferHesapSonucu[]; // Sıralı sağlayıcı sonuçları
|
|
333
|
+
desteklemeyenler: Array<{ // Bu koridoru desteklemeyen sağlayıcılar
|
|
334
|
+
saglayiciId: string;
|
|
335
|
+
sebep: string;
|
|
336
|
+
}>;
|
|
337
|
+
}
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### `hesapla(saglayiciId, miktar, gonderenParaBirimi, aliciParaBirimi, gonderenUlke?, aliciUlke?)` — Tek Sağlayıcı Hesapla
|
|
341
|
+
|
|
342
|
+
Belirli bir sağlayıcı için ayrıntılı maliyet hesaplaması yapar.
|
|
343
|
+
|
|
344
|
+
**Dönen Değer:** `Promise<TransferHesapSonucu>`
|
|
345
|
+
|
|
346
|
+
```typescript
|
|
347
|
+
interface TransferHesapSonucu {
|
|
348
|
+
saglayiciId: string; // "wise"
|
|
349
|
+
saglayiciAd: string; // "Wise (TransferWise)"
|
|
350
|
+
gonderenMiktar: number; // 10000
|
|
351
|
+
gonderenParaBirimi: string; // "TRY"
|
|
352
|
+
aliciMiktar: number; // 285.50
|
|
353
|
+
aliciParaBirimi: string; // "USD"
|
|
354
|
+
uyguladigiKur: number; // Sağlayıcının uyguladığı kur
|
|
355
|
+
piyasaKuru: number; // Gerçek piyasa orta kuru
|
|
356
|
+
kurMarjiYuzde: number; // Kur marjı yüzdesi
|
|
357
|
+
kurMarjiMaliyet: number; // Kur marjından kaynaklanan maliyet
|
|
358
|
+
transferUcreti: number; // Transfer ücreti
|
|
359
|
+
toplamMaliyet: number; // Toplam maliyet (ücret + kur marjı)
|
|
360
|
+
tahminiSure: { // Transfer süresi
|
|
361
|
+
min: number; // Minimum saat
|
|
362
|
+
maks: number; // Maksimum saat
|
|
363
|
+
aciklama: string; // "1 saat - 2 iş günü"
|
|
364
|
+
};
|
|
365
|
+
odemeYontemleri: string[]; // Desteklenen ödeme yöntemleri
|
|
366
|
+
puan: number; // Sağlayıcı puanı (1-5)
|
|
367
|
+
}
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### `kurGetir(kaynakParaBirimi, hedefParaBirimi)` — Döviz Kuru Getir
|
|
371
|
+
|
|
372
|
+
ECB veya exchangerate-api'den canlı döviz kuru getirir. Sonuçlar 30 dakika önbelleklenir.
|
|
373
|
+
|
|
374
|
+
**Dönen Değer:** `Promise<DovizKuru>`
|
|
375
|
+
|
|
376
|
+
```typescript
|
|
377
|
+
interface DovizKuru {
|
|
378
|
+
kaynak: string; // "ecb" veya "exchangerate_api"
|
|
379
|
+
kaynakParaBirimi: string; // "TRY"
|
|
380
|
+
hedefParaBirimi: string; // "USD"
|
|
381
|
+
kur: number; // 0.02855
|
|
382
|
+
tarih: string; // "2026-04-03"
|
|
383
|
+
zamanDamgasi: string; // ISO datetime
|
|
384
|
+
}
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
### `enUygun(parametreler)` — En Uygun Sağlayıcıyı Bul
|
|
388
|
+
|
|
389
|
+
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.
|
|
390
|
+
|
|
391
|
+
**Dönen Değer:** `Promise<TransferHesapSonucu | null>`
|
|
392
|
+
|
|
393
|
+
### `saglayicilar()` — Sağlayıcıları Listele
|
|
394
|
+
|
|
395
|
+
Kayıtlı tüm sağlayıcıların tam bilgilerini döndürür. Senkron fonksiyondur.
|
|
396
|
+
|
|
397
|
+
**Dönen Değer:** `Saglayici[]`
|
|
398
|
+
|
|
399
|
+
### `saglayiciEkle(saglayici)` — Yeni Sağlayıcı Ekle
|
|
400
|
+
|
|
401
|
+
Plugin sistemiyle yeni sağlayıcı ekler. Aynı `id` ile eklenen sağlayıcı mevcut kaydı günceller.
|
|
402
|
+
|
|
403
|
+
### `saglayiciKaldir(id)` — Sağlayıcı Kaldır
|
|
404
|
+
|
|
405
|
+
Belirtilen sağlayıcıyı kayıttan kaldırır. Başarılıysa `true`, bulunamazsa `false` döner.
|
|
406
|
+
|
|
407
|
+
### `ulkeDestegi(ulkeKodu)` — Ülke Desteği Kontrol Et
|
|
408
|
+
|
|
409
|
+
Bir ülkenin hangi sağlayıcılar tarafından gönderim ve alım için desteklendiğini kontrol eder.
|
|
410
|
+
|
|
411
|
+
### `desteklenenUlkeler()` — Tüm Ülkeleri Listele
|
|
412
|
+
|
|
413
|
+
En az bir sağlayıcı tarafından desteklenen tüm ülkeleri döndürür.
|
|
414
|
+
|
|
415
|
+
**Dönen Değer:** `Array<{ kod: string; ad: string }>`
|
|
416
|
+
|
|
417
|
+
### `desteklenenParaBirimleri()` — Tüm Para Birimlerini Listele
|
|
418
|
+
|
|
419
|
+
Sistemde tanımlı tüm para birimlerini döndürür.
|
|
420
|
+
|
|
421
|
+
**Dönen Değer:** `Array<{ kod: string; ad: string; sembol: string }>`
|
|
422
|
+
|
|
423
|
+
### `kurAyarla(ayarlar)` — Döviz Kuru Ayarları
|
|
424
|
+
|
|
425
|
+
Kur kaynağı önceliğini, önbellek süresini ve API anahtarlarını yapılandırır.
|
|
426
|
+
|
|
427
|
+
```typescript
|
|
428
|
+
import { kurAyarla } from "para-transferi";
|
|
429
|
+
|
|
430
|
+
kurAyarla({
|
|
431
|
+
onbellekSuresi: 3600, // Önbellek süresi (saniye), varsayılan: 1800
|
|
432
|
+
kaynakOnceligi: ["exchangerate_api", "ecb"], // Kaynak öncelik sırası
|
|
433
|
+
apiAnahtarlari: {
|
|
434
|
+
fixer: "API_ANAHTARINIZ", // Opsiyonel ek kur kaynağı
|
|
435
|
+
},
|
|
436
|
+
});
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
### `sifirla()` — Varsayılanlara Dön
|
|
440
|
+
|
|
441
|
+
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.
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## Plugin Sistemi — Özel Sağlayıcı Ekleme
|
|
446
|
+
|
|
447
|
+
`para-transferi`'nin en güçlü özelliklerinden biri genişletilebilir plugin sistemidir. Herhangi bir bankayı, fintech'i veya yerel havale servisini kolayca ekleyebilirsiniz:
|
|
448
|
+
|
|
449
|
+
```typescript
|
|
450
|
+
import { saglayiciEkle, karsilastir } from "para-transferi";
|
|
451
|
+
|
|
452
|
+
// Yerel bankanızı sağlayıcı olarak ekleyin
|
|
453
|
+
saglayiciEkle({
|
|
454
|
+
id: "ziraat-bankasi",
|
|
455
|
+
ad: "Ziraat Bankası",
|
|
456
|
+
webSitesi: "https://www.ziraatbank.com.tr",
|
|
457
|
+
kurulusYili: 1863,
|
|
458
|
+
merkezUlke: "TR",
|
|
459
|
+
aciklama: "Türkiye'nin en büyük kamu bankası ile uluslararası havale",
|
|
460
|
+
gonderenUlkeler: ["TR"],
|
|
461
|
+
aliciUlkeler: ["US", "DE", "GB", "FR", "NL", "SA", "AE"],
|
|
462
|
+
gonderenParaBirimleri: ["TRY"],
|
|
463
|
+
aliciParaBirimleri: ["USD", "EUR", "GBP", "SAR", "AED"],
|
|
464
|
+
ucretYapisi: {
|
|
465
|
+
sabitUcret: 40,
|
|
466
|
+
sabitUcretParaBirimi: "TRY",
|
|
467
|
+
yuzdeUcret: 0.2,
|
|
468
|
+
minimumUcret: 40,
|
|
469
|
+
maksimumUcret: 500,
|
|
470
|
+
aciklama: "40 TL sabit + %0.2 komisyon, maks 500 TL",
|
|
471
|
+
koridorUcretleri: {
|
|
472
|
+
"TR_DE": { sabitUcret: 30 }, // Almanya'ya özel ücret
|
|
473
|
+
},
|
|
474
|
+
},
|
|
475
|
+
transferYontemleri: [
|
|
476
|
+
{ tip: "banka_havalesi", ad: "SWIFT Havalesi", desteklenenUlkeler: [] },
|
|
477
|
+
],
|
|
478
|
+
transferHizlari: [
|
|
479
|
+
{
|
|
480
|
+
yontem: "banka_havalesi",
|
|
481
|
+
minimumSaat: 24,
|
|
482
|
+
maksimumSaat: 72,
|
|
483
|
+
aciklama: "1-3 iş günü",
|
|
484
|
+
},
|
|
485
|
+
],
|
|
486
|
+
limitler: {
|
|
487
|
+
minimumGonderim: 100,
|
|
488
|
+
maksimumGonderim: 500000,
|
|
489
|
+
paraBirimi: "TRY",
|
|
490
|
+
gunlukLimit: 500000,
|
|
491
|
+
},
|
|
492
|
+
kurMarjiYuzde: 2.5,
|
|
493
|
+
odemeYontemleri: ["banka_havalesi", "swift"],
|
|
494
|
+
puan: 3.8,
|
|
495
|
+
duzenleme: {
|
|
496
|
+
lisanslar: ["BDDK", "SPK"],
|
|
497
|
+
duzenleyiciUlkeler: ["TR"],
|
|
498
|
+
},
|
|
499
|
+
});
|
|
500
|
+
|
|
501
|
+
// Artık Ziraat Bankası da karşılaştırmada yer alır
|
|
502
|
+
const sonuc = await karsilastir({
|
|
503
|
+
gonderenUlke: "TR",
|
|
504
|
+
aliciUlke: "DE",
|
|
505
|
+
gonderenParaBirimi: "TRY",
|
|
506
|
+
aliciParaBirimi: "EUR",
|
|
507
|
+
miktar: 20000,
|
|
508
|
+
});
|
|
509
|
+
|
|
510
|
+
console.log(`${sonuc.sonuclar.length} sağlayıcı karşılaştırıldı`);
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
---
|
|
514
|
+
|
|
515
|
+
## Hata Yönetimi
|
|
516
|
+
|
|
517
|
+
Paket, geliştirici deneyimini kolaylaştırmak için özel hata sınıfları kullanır. Her hata bir `kod` alanı içerir:
|
|
518
|
+
|
|
519
|
+
```typescript
|
|
520
|
+
import {
|
|
521
|
+
karsilastir,
|
|
522
|
+
ParaTransferiHatasi,
|
|
523
|
+
GecersizParametreHatasi,
|
|
524
|
+
SaglayiciBulunamadiHatasi,
|
|
525
|
+
KurGetirmeHatasi,
|
|
526
|
+
} from "para-transferi";
|
|
527
|
+
|
|
528
|
+
try {
|
|
529
|
+
const sonuc = await karsilastir({
|
|
530
|
+
gonderenUlke: "TR",
|
|
531
|
+
aliciUlke: "US",
|
|
532
|
+
gonderenParaBirimi: "TRY",
|
|
533
|
+
aliciParaBirimi: "USD",
|
|
534
|
+
miktar: 10000,
|
|
535
|
+
});
|
|
536
|
+
} catch (hata) {
|
|
537
|
+
if (hata instanceof GecersizParametreHatasi) {
|
|
538
|
+
console.error("Geçersiz girdi:", hata.message);
|
|
539
|
+
} else if (hata instanceof KurGetirmeHatasi) {
|
|
540
|
+
console.error("Döviz kuru alınamadı:", hata.message);
|
|
541
|
+
} else if (hata instanceof ParaTransferiHatasi) {
|
|
542
|
+
console.error(`Hata [${hata.kod}]:`, hata.message);
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
### Hata Sınıfları
|
|
548
|
+
|
|
549
|
+
| Hata Sınıfı | Kod | Ne Zaman Fırlatılır |
|
|
550
|
+
|-------------|-----|---------------------|
|
|
551
|
+
| `ParaTransferiHatasi` | — | Tüm hataların temel sınıfı |
|
|
552
|
+
| `GecersizParametreHatasi` | `GECERSIZ_PARAMETRE` | Geçersiz ülke kodu, para birimi veya miktar |
|
|
553
|
+
| `SaglayiciBulunamadiHatasi` | `SAGLAYICI_BULUNAMADI` | `hesapla()` ile olmayan sağlayıcı ID'si kullanıldığında |
|
|
554
|
+
| `KoridorDesteklenmiyorHatasi` | `KORIDOR_DESTEKLENMIYOR` | Gönderen-alıcı ülke kombinasyonu hiç desteklenmediğinde |
|
|
555
|
+
| `KurGetirmeHatasi` | `KUR_GETIRME_HATASI` | ECB ve yedek kaynaklar da dahil tüm kur API'leri başarısız olduğunda |
|
|
556
|
+
| `LimitAsimiHatasi` | `LIMIT_ASIMI` | Transfer miktarı sağlayıcının limitlerini aştığında |
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
## Desteklenen Ülkeler
|
|
561
|
+
|
|
562
|
+
### Avrupa
|
|
563
|
+
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)
|
|
564
|
+
|
|
565
|
+
### Amerika
|
|
566
|
+
Amerika Birleşik Devletleri (US), Kanada (CA), Brezilya (BR), Meksika (MX), Kolombiya (CO), Arjantin (AR), Şili (CL), Peru (PE)
|
|
567
|
+
|
|
568
|
+
### Asya-Pasifik
|
|
569
|
+
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)
|
|
570
|
+
|
|
571
|
+
### Orta Doğu ve Afrika
|
|
572
|
+
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)
|
|
573
|
+
|
|
574
|
+
### Diğer
|
|
575
|
+
Rusya (RU), Ukrayna (UA), Gürcistan (GE), Azerbaycan (AZ)
|
|
576
|
+
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
## Desteklenen Para Birimleri
|
|
580
|
+
|
|
581
|
+
`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ı
|
|
582
|
+
|
|
583
|
+
---
|
|
584
|
+
|
|
585
|
+
## Popüler Transfer Koridorları
|
|
586
|
+
|
|
587
|
+
Bu paket ile en sık kullanılan transfer rotalarını kolayca karşılaştırabilirsiniz:
|
|
588
|
+
|
|
589
|
+
| Koridor | Açıklama |
|
|
590
|
+
|---------|----------|
|
|
591
|
+
| Türkiye → Almanya (TRY → EUR) | Almanya'daki Türk diasporasına para gönderimi |
|
|
592
|
+
| Türkiye → ABD (TRY → USD) | Yurt dışı eğitim, iş ve aile transferleri |
|
|
593
|
+
| Türkiye → İngiltere (TRY → GBP) | İngiltere'deki aileye havale |
|
|
594
|
+
| Almanya → Türkiye (EUR → TRY) | Gurbetçi havaleleri |
|
|
595
|
+
| ABD → Türkiye (USD → TRY) | Yurt dışından Türkiye'ye para gönderimi |
|
|
596
|
+
| İngiltere → Türkiye (GBP → TRY) | İngiltere'den Türkiye'ye transfer |
|
|
597
|
+
| Türkiye → Hollanda (TRY → EUR) | Hollanda'ya para transferi |
|
|
598
|
+
| Türkiye → Fransa (TRY → EUR) | Fransa'ya para transferi |
|
|
599
|
+
| Türkiye → Suudi Arabistan (TRY → SAR) | İşçi havaleleri |
|
|
600
|
+
| Türkiye → BAE (TRY → AED) | Dubai ve Abu Dhabi'ye transfer |
|
|
601
|
+
|
|
602
|
+
---
|
|
603
|
+
|
|
604
|
+
## Kullanım Senaryoları
|
|
605
|
+
|
|
606
|
+
### Fintech Uygulamaları
|
|
607
|
+
|
|
608
|
+
Para transferi karşılaştırma özelliğini kendi uygulamanıza entegre edin:
|
|
609
|
+
|
|
610
|
+
```typescript
|
|
611
|
+
import { karsilastir, saglayiciEkle } from "para-transferi";
|
|
612
|
+
|
|
613
|
+
// API endpoint'iniz
|
|
614
|
+
app.get("/api/karsilastir", async (req, res) => {
|
|
615
|
+
const { gonderen, alici, paraBirimi, hedefParaBirimi, miktar } = req.query;
|
|
616
|
+
|
|
617
|
+
const sonuc = await karsilastir({
|
|
618
|
+
gonderenUlke: gonderen,
|
|
619
|
+
aliciUlke: alici,
|
|
620
|
+
gonderenParaBirimi: paraBirimi,
|
|
621
|
+
aliciParaBirimi: hedefParaBirimi,
|
|
622
|
+
miktar: Number(miktar),
|
|
623
|
+
});
|
|
624
|
+
|
|
625
|
+
res.json(sonuc);
|
|
626
|
+
});
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
### Döviz Kuru Takip Botu
|
|
630
|
+
|
|
631
|
+
```typescript
|
|
632
|
+
import { kurGetir } from "para-transferi";
|
|
633
|
+
|
|
634
|
+
const paraCiftleri = [
|
|
635
|
+
["TRY", "USD"],
|
|
636
|
+
["TRY", "EUR"],
|
|
637
|
+
["TRY", "GBP"],
|
|
638
|
+
["EUR", "USD"],
|
|
639
|
+
];
|
|
640
|
+
|
|
641
|
+
for (const [kaynak, hedef] of paraCiftleri) {
|
|
642
|
+
const kur = await kurGetir(kaynak, hedef);
|
|
643
|
+
console.log(`${kaynak}/${hedef}: ${kur.kur}`);
|
|
644
|
+
}
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
### Maliyet Uyarı Sistemi
|
|
648
|
+
|
|
649
|
+
```typescript
|
|
650
|
+
import { enUygun } from "para-transferi";
|
|
651
|
+
|
|
652
|
+
async function maliyetKontrol() {
|
|
653
|
+
const enIyi = await enUygun({
|
|
654
|
+
gonderenUlke: "TR",
|
|
655
|
+
aliciUlke: "DE",
|
|
656
|
+
gonderenParaBirimi: "TRY",
|
|
657
|
+
aliciParaBirimi: "EUR",
|
|
658
|
+
miktar: 10000,
|
|
659
|
+
});
|
|
660
|
+
|
|
661
|
+
if (enIyi && enIyi.toplamMaliyet < 200) {
|
|
662
|
+
console.log("Transfer maliyeti düşük, şimdi gönderme zamanı!");
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
---
|
|
668
|
+
|
|
669
|
+
## Maliyet Hesaplama Mantığı
|
|
670
|
+
|
|
671
|
+
`para-transferi`'nin maliyet hesaplamasını anlamak, sonuçları doğru yorumlamanız için önemlidir:
|
|
672
|
+
|
|
673
|
+
### Transfer Ücreti
|
|
674
|
+
|
|
675
|
+
Her sağlayıcının ücret yapısı farklıdır:
|
|
676
|
+
|
|
677
|
+
```
|
|
678
|
+
transferÜcreti = max(minimumÜcret, sabitÜcret + (miktar × yüzdeÜcret / 100))
|
|
679
|
+
|
|
680
|
+
// Maksimum ücret varsa:
|
|
681
|
+
transferÜcreti = min(transferÜcreti, maksimumÜcret)
|
|
682
|
+
```
|
|
683
|
+
|
|
684
|
+
### Kur Marjı Maliyeti
|
|
685
|
+
|
|
686
|
+
Bazı sağlayıcılar (Wise hariç) piyasa kurunun altında bir kur uygular:
|
|
687
|
+
|
|
688
|
+
```
|
|
689
|
+
uyguladigiKur = piyasaKuru × (1 - kurMarjıYüzde / 100)
|
|
690
|
+
kurMarjıMaliyeti = miktar × (kurMarjıYüzde / 100)
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
### Toplam Maliyet
|
|
694
|
+
|
|
695
|
+
```
|
|
696
|
+
toplamMaliyet = transferÜcreti + kurMarjıMaliyeti
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
### Alıcı Miktar
|
|
700
|
+
|
|
701
|
+
```
|
|
702
|
+
alıcıMiktar = (miktar - transferÜcreti) × uyguladigiKur
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
> **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.
|
|
706
|
+
|
|
707
|
+
---
|
|
708
|
+
|
|
709
|
+
## Veri Kaynakları ve Güvenilirlik
|
|
710
|
+
|
|
711
|
+
| Veri Tipi | Kaynak | Güncelleme |
|
|
712
|
+
|-----------|--------|------------|
|
|
713
|
+
| Döviz kurları | ECB (Avrupa Merkez Bankası) | Günlük (iş günleri) |
|
|
714
|
+
| Yedek kur kaynağı | exchangerate-api.com | Gerçek zamanlı |
|
|
715
|
+
| Sağlayıcı ücretleri | Resmi web siteleri | Paket güncellemeleriyle |
|
|
716
|
+
| Sağlayıcı bilgileri | Resmi belgeler ve lisans kayıtları | Paket güncellemeleriyle |
|
|
717
|
+
|
|
718
|
+
> **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.
|
|
719
|
+
|
|
720
|
+
---
|
|
721
|
+
|
|
722
|
+
## Sıkça Sorulan Sorular (SSS)
|
|
723
|
+
|
|
724
|
+
### Bu paket gerçek para transferi yapıyor mu?
|
|
725
|
+
|
|
726
|
+
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.
|
|
727
|
+
|
|
728
|
+
### Döviz kurları ne kadar güncel?
|
|
729
|
+
|
|
730
|
+
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.
|
|
731
|
+
|
|
732
|
+
### Kendi sağlayıcımı nasıl eklerim?
|
|
733
|
+
|
|
734
|
+
`saglayiciEkle()` fonksiyonu ile `Saglayici` arayüzüne uygun bir obje geçirerek herhangi bir banka veya fintech servisini ekleyebilirsiniz. Detaylar için [Plugin Sistemi](#plugin-sistemi--özel-sağlayıcı-ekleme) bölümüne bakın.
|
|
735
|
+
|
|
736
|
+
### Sağlayıcı verileri ne kadar doğru?
|
|
737
|
+
|
|
738
|
+
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.
|
|
739
|
+
|
|
740
|
+
### CommonJS projelerimde kullanabilir miyim?
|
|
741
|
+
|
|
742
|
+
Evet. Paket hem ESM (`import`) hem CJS (`require`) formatını destekler:
|
|
743
|
+
|
|
744
|
+
```javascript
|
|
745
|
+
// ESM
|
|
746
|
+
import { karsilastir } from "para-transferi";
|
|
747
|
+
|
|
748
|
+
// CommonJS
|
|
749
|
+
const { karsilastir } = require("para-transferi");
|
|
750
|
+
```
|
|
751
|
+
|
|
752
|
+
### Offline çalışır mı?
|
|
753
|
+
|
|
754
|
+
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.
|
|
755
|
+
|
|
756
|
+
### Hangi Node.js versiyonları destekleniyor?
|
|
757
|
+
|
|
758
|
+
Node.js 18 ve üstü. Paket native `fetch()` API'sini kullandığından Node.js 18+ gereklidir.
|
|
759
|
+
|
|
760
|
+
---
|
|
761
|
+
|
|
762
|
+
## Gereksinimler
|
|
763
|
+
|
|
764
|
+
- **Node.js 18** veya üstü
|
|
765
|
+
- İnternet bağlantısı (canlı kur fonksiyonları için)
|
|
766
|
+
|
|
767
|
+
---
|
|
768
|
+
|
|
769
|
+
## Lisans
|
|
770
|
+
|
|
771
|
+
MIT License — Ticari ve kişisel projelerde serbestçe kullanabilirsiniz.
|
|
772
|
+
|
|
773
|
+
## Katkıda Bulunma
|
|
774
|
+
|
|
775
|
+
Katkılarınızı bekliyoruz!
|
|
776
|
+
|
|
777
|
+
1. Bu repoyu fork edin
|
|
778
|
+
2. Yeni bir branch oluşturun (`git checkout -b yeni-ozellik`)
|
|
779
|
+
3. Değişikliklerinizi commit edin (`git commit -m "Yeni sağlayıcı eklendi"`)
|
|
780
|
+
4. Branch'i push edin (`git push origin yeni-ozellik`)
|
|
781
|
+
5. Pull Request oluşturun
|
|
782
|
+
|
|
783
|
+
Büyük değişiklikler için önce bir issue açarak tartışmaya başlayın.
|
|
784
|
+
|
|
785
|
+
---
|
|
786
|
+
|
|
787
|
+
## İlgili Bağlantılar
|
|
788
|
+
|
|
789
|
+
- [paratransferleri.com](https://paratransferleri.com) — Uluslararası para transferi karşılaştırma platformu
|
|
790
|
+
- [Wise](https://wise.com) — Gerçek orta piyasa kuru ile transfer
|
|
791
|
+
- [Remitly](https://www.remitly.com) — Hızlı uluslararası para transferi
|
|
792
|
+
- [XE](https://www.xe.com) — Döviz kuru ve para transferi
|
|
793
|
+
- [OFX](https://www.ofx.com) — Büyük tutarlı transferler
|
|
794
|
+
- [WorldRemit](https://www.worldremit.com) — Çoklu teslimat seçenekleri
|
|
795
|
+
- [Revolut](https://www.revolut.com) — Dijital bankacılık ve transfer
|
|
796
|
+
|
|
797
|
+
---
|
|
798
|
+
|
|
799
|
+
[paratransferleri.com](https://paratransferleri.com) tarafından geliştirilmiştir.
|