Fintech uygulamaları artık nadiren sıfırdan başlar. Bir kullanıcı uygulamanıza bir vadesiz hesap bağladığında, büyük ihtimalle Plaid aracı olarak banka girişlerini arka ucunuzun kullanabileceği temiz JSON'a çevirir. Plaid API'si, Venmo, Robinhood ve Chime dahil binlerce uygulama için hesap bağlama, bakiye kontrolü, işlem geçmişi ve kimlik doğrulama sağlar.
Bu kılavuz size Plaid API'sini bir geliştirici bakış açısından anlatır: anahtarları nasıl alacağınızı, Link token akışının baştan sona nasıl çalıştığını, bilmeniz gereken ürünleri ve üretimde işler ters gittiğinde yaygın hataların ne anlama geldiğini gösterir. Ayrıca, istek yüklerini tahmin etmeyi bırakmanız için her adımı Apidog ile nasıl test edeceğinizi de göreceksiniz. Ham doğruluk kaynağını istiyorsanız, okurken resmi Plaid belgelerini ikinci bir sekmede açık tutun.
Açık bankacılık kalabalık bir alandır ve Plaid birçok seçenekten biridir. Hala satıcıları karşılaştırıyorsanız, en iyi açık bankacılık API'leri hakkındaki özetimiz faydalı bir yardımcı olacaktır. Bu yazı için, Plaid'i seçtiğinizi ve yayınlamaya hazır olduğunuzu varsayın.
TL;DR (Çok Uzun; Okumadım)
- Plaid, uygulamanızı ABD, Kanada ve Avrupa'daki 12.000'den fazla bankaya bağlayan bir finansal veri toplayıcısıdır.
- Kutudan çıkar çıkmaz üç ortam elde edersiniz: sandbox (ücretsiz, sahte veriler), geliştirme (100 ücretsiz canlı Öğeler) ve üretim (çağrı başına ödeme).
- Bağlama akışı dört adımlı bir el sıkışmadır: sunucu tarafında
link_tokenoluşturma, istemci tarafında Plaid Link'i açma,public_token'ıaccess_tokenile değiştirme ve ardından ürün uç noktalarını çağırma. - Çekirdek ürünler Kimlik Doğrulama (Auth), Bakiye (Balance), İşlemler (Transactions), Kimlik (Identity), Yatırımlar (Investments), Yükümlülükler (Liabilities) ve Gelir (Income)'dir. Bunları Öğe (Item) başına etkinleştirirsiniz.
- En yaygın üretim hataları
ITEM_LOGIN_REQUIREDveINVALID_CREDENTIALS'tır. Webhook'lar bir Öğenin dikkat gerektirdiğini size bildirir. - Oran sınırları Öğe (Item) başına ve istemci başınadır. Okumalarınızı gruplandırın ve yoklama yapmak yerine webhook'ları dinleyin.
Plaid Nedir?
Plaid, uygulamanız ile kullanıcının bankası arasında yer alan ABD merkezli bir fintech altyapı şirketidir. Bir kullanıcı banka kimlik bilgilerini Plaid Link'e girdiğinde, Plaid bankaya bağlanır (mümkün olan yerlerde resmi açık bankacılık API'leri aracılığıyla veya mümkün olmayan yerlerde tersine mühendislikle tasarlanmış banka web siteleri aracılığıyla), istenen verileri çeker, normalleştirir ve hangi bankadan geldiğine bakılmaksızın size tutarlı bir JSON yanıtı sunar.
Kullanıcının banka kimlik bilgilerini asla görmez veya saklamazsınız. Plaid, Öğe (Item) olarak adlandırdığı bağlantıyı tutar ve size bu Öğeyi sorgulama iznini temsil eden bir access_token verir. Bir Öğe, bir finans kurumundaki bir kimlik bilgisi kümesine eşittir ve birden fazla hesap (vadesiz, tasarruf, kredi kartı) içerebilir.
Plaid, tüketici vadesiz ve tasarruf hesaplarını, kredi kartlarını, kredileri, yatırım hesaplarını ve bordro verilerini kapsar. Kendi başına para transferi yapmaz; ACH transferleri için genellikle Plaid Auth'u ayrı bir ödeme işlemcisiyle eşleştirirsiniz. En iyi ACH ödeme API'leri hakkındaki yazımız, bu eşleşmenin genellikle nasıl göründüğünü açıklar.
Kimlik Doğrulama ve Kurulum
Adım 1: Bir Plaid geliştirici hesabı oluşturun
plaid.com adresinden kaydolun ve e-postanızı doğrulayın. Plaid Kontrol Paneli'ne, halihazırda sağlanmış üç ortamla birlikte yönlendirileceksiniz:
- Sandbox: sahte kurumlar, sahte kullanıcılar, ücretsiz. Giriş yapmak için
user_good/pass_goodkullanın. - Geliştirme (Development): gerçek banka bağlantıları, 100 canlı Öğeyle sınırlı, ücretsiz.
- Üretim (Production): gerçek bağlantılar, sınırsız, kullanıma göre faturalandırma.
Adım 2: Anahtarlarınızı alın
Kontrol Paneli'nden Ekip Ayarları (Team Settings) > Anahtarlar (Keys) bölümüne gidin. İki değere ihtiyacınız var:
client_id: tüm ortamlarda aynısecret: ortama göre farklı (sandbox, geliştirme, üretim)
Bunları ortam değişkenlerinde saklayın. Asla git'e işlemeyin.
Adım 3: SDK'yı yükleyin
Resmi Node.js SDK'sı github.com/plaid/plaid-node adresinde bulunur.
npm install plaid
Adım 4: İstemciyi başlatın
import { Configuration, PlaidApi, PlaidEnvironments } from 'plaid';
const config = new Configuration({
basePath: PlaidEnvironments.sandbox,
baseOptions: {
headers: {
'PLAID-CLIENT-ID': process.env.PLAID_CLIENT_ID,
'PLAID-SECRET': process.env.PLAID_SECRET,
},
},
});
const client = new PlaidApi(config);
Terfi ettiğinizde (ortam değiştirdiğinizde), PlaidEnvironments.sandbox'ı .development veya .production ile değiştirin.
Temel Uç Noktalar
Link Token Akışı
Her Plaid entegrasyonu aynı dört adımlı süreci takip eder. 1. ve 3. adımları sunucu tarafında yaparsınız; Plaid Link 2. adımı kullanıcının tarayıcısında veya mobil uygulamasında halleder.
Adım 1: Bir link_token oluşturun
const response = await client.linkTokenCreate({
user: { client_user_id: 'user_123' },
client_name: 'Your App',
products: ['auth', 'transactions'],
country_codes: ['US'],
language: 'en',
});
const linkToken = response.data.link_token;
Curl versiyonu:
curl -X POST https://sandbox.plaid.com/link/token/create \
-H 'Content-Type: application/json' \
-d '{
"client_id": "YOUR_CLIENT_ID",
"secret": "YOUR_SANDBOX_SECRET",
"user": { "client_user_id": "user_123" },
"client_name": "Your App",
"products": ["auth", "transactions"],
"country_codes": ["US"],
"language": "en"
}'
Adım 2: Plaid Link'i istemcide açın
link_token'ı ön ucunuza gönderin ve Plaid Link SDK'sına iletin. Kullanıcı bankasını seçer, giriş yapar ve Plaid, onSuccess geri çağırma işlevinize bir public_token döndürür.
Adım 3: public_token'ı değiştirin
const exchange = await client.itemPublicTokenExchange({
public_token: publicToken,
});
const accessToken = exchange.data.access_token;
const itemId = exchange.data.item_id;
accessToken'ı kullanıcınıza bağlı olarak sunucu tarafında saklayın. Bu token uzun ömürlüdür ve gelecekteki her çağrı için kullanacağınız tokendır.
Adım 4: Ürün uç noktalarını çağırın
const accounts = await client.accountsGet({ access_token: accessToken });
const balance = await client.accountsBalanceGet({ access_token: accessToken });
Bilmeniz gereken ürün uç noktaları
- Kimlik Doğrulama (Auth), ACH için hesap ve yönlendirme numaralarını döndürür (
/auth/get). - Bakiye (Balance), önbelleği atlayarak gerçek zamanlı bakiyeleri döndürür (
/accounts/balance/get). - İşlemler (Transactions), 24 aya kadar temizlenmiş işlem verilerini döndürür (
/transactions/sync). - Kimlik (Identity), hesap sahibinin adını, e-postasını, telefonunu, adresini döndürür (
/identity/get). Kullanım durumunuz yalnızca KYC ise, en iyi KYC API'leri özetimizdeki özel sağlayıcılarla karşılaştırın. - Yatırımlar (Investments), varlıkları ve yatırım işlemlerini döndürür (
/investments/holdings/get). - Yükümlülükler (Liabilities), öğrenci kredisi, kredi kartı ve ipotek ayrıntılarını döndürür (
/liabilities/get). - Gelir (Income), Plaid Income aracılığıyla bordro verilerini döndürür (
/credit/payroll_income/get).
Plaid API'sini Apidog ile Test Etme
Plaid'i uçtan uca test etmek zordur çünkü Link adımı bir tarayıcıda gerçekleşir. Sunucu tarafı uç noktalarına geçerli yüklerle ulaşmak, hataların nasıl ortaya çıktığını görmek ve çalışan istekleri ekip arkadaşlarınızla paylaşmak için hala güvenilir bir yola ihtiyacınız var. Apidog bunu çoğu araçtan daha iyi halleder.
Plaid'in OpenAPI belirtimini Apidog'a aktardığınızda, her uç noktayı türler, örnek gövdeler ve doğru kimlik doğrulama başlıklarıyla önceden yapılandırılmış olarak alırsınız. Bir sandbox ortam değişkeni kümesi (client_id, secret, access_token) oluşturabilir ve tek tıklamayla üretime geçiş yapabilirsiniz. Zincirleme istekler, linkTokenCreate → sandboxPublicTokenCreate → itemPublicTokenExchange → accountsGet adımlarını tek bir akışta çalıştırmanıza olanak tanır, böylece tam el sıkışmayı bir tarayıcıya ihtiyaç duymadan doğrulayabilirsiniz.
Apidog'un mock sunucusu, arka uç entegrasyonunuz tamamlanmadan önce ön uç ekibinizin /accounts/get yanıtlarına ihtiyaç duyduğu durumlarda kullanışlıdır. Başka bir araçtan geçiş yapıyorsanız, 2026'da Postman olmadan API testi konulu kılavuzumuz geçişi ayrıntılı olarak ele almaktadır. Başlamak için Apidog'u indirin ve Plaid'in belirtimine yönlendirin.
Yaygın Hatalar ve Oran Sınırları
Plaid hataları bir error_type, error_code ve insan tarafından okunabilir bir error_message ile geri döner. Üretimde bu dört hatayı ele alın:
INVALID_CREDENTIALS: kullanıcı bankada yanlış parola yazdı. Link güncelleme modu aracılığıyla tekrar denemeleri için yönlendirin.ITEM_LOGIN_REQUIRED: banka oturumu geçersiz kıldı (parola değişikliği, MFA rotasyonu). Yeniden kimlik doğrulamak için Link'i güncelleme modunda tetikleyin. Bunu başarısız bir çağrı ile değil, bir webhook aracılığıyla öğrenirsiniz.RATE_LIMIT_EXCEEDED: Öğe (Item) başına veya uç nokta başına bir sınıra ulaştınız. Geri çekilin, ardından titreme (jitter) ile yeniden deneyin.PRODUCT_NOT_READY: İşlem verileri hala çekiliyor.INITIAL_UPDATEwebhook'u tetiklendikten sonra tekrar deneyin.
Webhook'lar
link_token oluştururken bir webhook URL'si geçin ve Plaid güncellemeleri bu URL'ye POST edecektir. Göz ardı edemeyeceğiniz üç tanesi SYNC_UPDATES_AVAILABLE (yeni işlemler), ITEM: LOGIN_REQUIRED (yeniden kimlik doğrulama gerekiyor) ve ITEM: ERROR (kalıcı hata)'dır. Her webhook üzerinde işlem yapmadan önce JWT imzasını doğrulayın.
Oran Sınırları
Plaid, Öğe (Item) başına ve uç nokta başına oran sınırları uygular. Örneğin, /accounts/balance/get üretimde Öğe başına dakikada yaklaşık 5 çağrı ile sınırlıdır. Yoğun uç noktalarda toplam istemci düzeyindeki sınırlar da geçerlidir. Pratik kural şudur: webhook'ları yoklayın, bakiyeleri birkaç dakika önbelleğe alın ve hiçbir zaman kullanıcıya dönük bir istek yolundan Plaid'e erişmeyin.
Plaid Fiyatlandırması
Plaid, üretimde kademeli, API çağrısı başına ödeme fiyatlandırması kullanır. Yaklaşık olarak:
- Sandbox: ücretsiz, sınırsız.
- Geliştirme (Development): 100 Öğeye kadar ücretsiz.
- Üretim (Production):
- Kimlik Doğrulama (Auth): Bağlı hesap başına yaklaşık 1,50 ABD Doları, tek seferlik.
- Bakiye (Balance): Çağrı başına fiyatlandırma.
- İşlemler (Transactions): Öğe (Item) başına aylık ücret (yaklaşık 0,30 ABD Doları).
- Kimlik (Identity): Çağrı başına.
- Yatırımlar (Investments) / Yükümlülükler (Liabilities) / Gelir (Income): Öğe (Item) başına ayrı ücretler.
Plaid, belirli hacimlerin üzerinde özel fiyatlandırma müzakereleri yapar, bu nedenle genel fiyat listesi bir başlangıç noktasıdır. Güncel rakamlar için Plaid ürünleri sayfasını kontrol edin.
Sıkça Sorulan Sorular (SSS)
Bir access_token ne kadar süreyle geçerlidir?Kullanıcı erişimi iptal edene veya banka oturumu geçersiz kılana kadar süresizdir. Şifreli olarak saklayın ve kendi tarafınızda süresini sona erdirmeyin.
Plaid'i yalnızca kimlik doğrulama için kullanabilir miyim?Plaid Kimlik (Identity) özelliğini kullanabilirsiniz, ancak birincil ihtiyacınız KYC ise özel bir doğrulama ürünü sizin için daha iyi olabilir. Stripe Identity API'sini nasıl kullanacağınıza dair kılavuzumuzda bu değiş tokuşları ele alıyoruz.
Plaid ABD dışındaki ülkeleri destekliyor mu?Evet. Plaid, ABD, Kanada, Birleşik Krallık ve AB'nin çoğunu kapsar. Ülke desteği ürüne göre değişir; /link/token/create çağrısındaki ülke kodları parametresini kontrol edin.
Bir kullanıcı banka parolasını değiştirirse ne olur?Öğe (Item) ITEM_LOGIN_REQUIRED durumuna geçer ve bir webhook alırsınız. Plaid Link'i güncelleme modunda tetikleyin ve kullanıcı access_token'ını kaybetmeden yeniden kimlik doğrular.
Link akışını gerçek bir tarayıcı olmadan test edebilir miyim?Evet. /sandbox/public_token/create uç noktası Link'i tamamen atlar ve değiştirebileceğiniz bir public_token döndürür. Bunu otomatik entegrasyon testleri için kullanın.
Yerel geliştirme ortamında Plaid'i nasıl ele alırım?.env dosyanızda bir sandbox secret tutun ve geliştirme ortamınızı PlaidEnvironments.sandbox'a bağlayın. Webhook'ları yerel olarak almak için tünelleme (ngrok, Cloudflare Tunnel) kullanın.
