Aplikasi fintech jarang lagi dimulai dari nol. Ketika pengguna menautkan rekening giro ke aplikasi Anda, kemungkinan besar Plaid berada di tengah, menerjemahkan login bank menjadi JSON bersih yang dapat digunakan backend Anda. API Plaid mendukung penautan akun, pemeriksaan saldo, riwayat transaksi, dan verifikasi identitas untuk ribuan aplikasi termasuk Venmo, Robinhood, dan Chime.
Panduan ini akan memandu Anda memahami API Plaid dari sudut pandang pengembang: cara mendapatkan kunci, cara kerja alur token Link secara menyeluruh, produk apa saja yang harus Anda ketahui, dan apa arti kesalahan umum ketika ada masalah dalam produksi. Anda juga akan melihat cara menguji setiap langkah dengan Apidog sehingga Anda berhenti menebak-nebak payload permintaan. Jika Anda menginginkan sumber kebenaran mentah, buka dokumentasi resmi Plaid di tab kedua saat Anda membaca.
Open banking adalah ruang yang ramai, dan Plaid adalah salah satu pilihan di antara beberapa opsi lainnya. Jika Anda masih membandingkan vendor, rangkuman kami tentang API open banking terbaik adalah pendamping yang berguna. Untuk postingan ini, asumsikan Anda telah memilih Plaid dan siap untuk meluncurkan produk.
TL;DR
- Plaid adalah agregator data keuangan yang menghubungkan aplikasi Anda ke lebih dari 12.000 bank di seluruh AS, Kanada, dan Eropa.
- Anda mendapatkan tiga lingkungan siap pakai: sandbox (gratis, data palsu), development (100 Item live gratis), dan production (bayar per panggilan).
- Alur penautan adalah jabat tangan empat langkah: buat
link_tokendi sisi server, buka Plaid Link di sisi klien, tukarpublic_tokendenganaccess_token, lalu panggil endpoint produk. - Produk inti adalah Auth, Balance, Transactions, Identity, Investments, Liabilities, dan Income. Anda mengaktifkannya per Item.
- Kesalahan produksi yang paling umum adalah
ITEM_LOGIN_REQUIREDdanINVALID_CREDENTIALS. Webhook memberitahu Anda ketika sebuah Item memerlukan perhatian. - Batas laju (rate limits) berlaku per-Item dan per-klien. Batch pembacaan Anda dan dengarkan webhook daripada melakukan polling.
Apa itu Plaid?
Plaid adalah perusahaan infrastruktur fintech berbasis di AS yang berada di antara aplikasi Anda dan bank pengguna. Ketika pengguna mengetik kredensial bank mereka ke Plaid Link, Plaid terhubung ke bank (melalui API open banking resmi jika tersedia, atau situs web bank yang direkayasa balik jika tidak), menarik data yang diminta, menormalkannya, dan memberikan Anda respons JSON yang konsisten terlepas dari bank asal data tersebut.
Anda tidak pernah melihat atau menyimpan kredensial bank pengguna. Plaid memegang koneksi, yang disebutnya Item, dan memberi Anda access_token yang mewakili izin untuk menanyakan Item tersebut. Satu Item sama dengan satu set kredensial di satu lembaga keuangan, dan dapat mencakup beberapa akun (giro, tabungan, kartu kredit).
Plaid mencakup rekening giro dan tabungan konsumen, kartu kredit, pinjaman, rekening investasi, dan data penggajian. Plaid tidak memindahkan uang sendiri; untuk transfer ACH Anda biasanya memasangkan Plaid Auth dengan prosesor pembayaran terpisah. Tulisan kami tentang API pembayaran ACH terbaik menjelaskan bagaimana pasangan tersebut biasanya terlihat.
Autentikasi dan pengaturan
Langkah 1: Buat akun pengembang Plaid
Daftar di plaid.com dan verifikasi email Anda. Anda akan masuk ke Dasbor Plaid dengan tiga lingkungan yang sudah tersedia:
- Sandbox: institusi palsu, pengguna palsu, tanpa biaya. Gunakan
user_good/pass_gooduntuk masuk. - Development: koneksi bank asli, dibatasi hingga 100 Item live, gratis.
- Production: koneksi asli, tidak terbatas, penagihan berdasar penggunaan.
Langkah 2: Dapatkan kunci Anda
Dari Dasbor, buka Team Settings > Keys. Anda memerlukan dua nilai:
client_id: sama di semua lingkungansecret: berbeda per lingkungan (sandbox, development, production)
Simpan ini dalam variabel lingkungan. Jangan pernah meng-commit-nya ke git.
Langkah 3: Instal SDK
SDK Node.js resmi tersedia di github.com/plaid/plaid-node.
npm install plaid
Langkah 4: Inisialisasi klien
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);
Ganti PlaidEnvironments.sandbox dengan .development atau .production saat Anda mempromosikan aplikasi.
Endpoint inti
Alur token Link
Setiap integrasi Plaid mengikuti tarian empat langkah yang sama. Anda melakukan langkah 1 dan 3 di sisi server; Plaid Link menangani langkah 2 di browser atau aplikasi seluler pengguna.
Langkah 1: Buat link_token
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;
Versi curl:
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"
}'
Langkah 2: Buka Plaid Link di klien
Kirim link_token ke frontend Anda dan teruskan ke Plaid Link SDK. Pengguna memilih bank mereka, masuk, dan Plaid mengembalikan public_token ke callback onSuccess Anda.
Langkah 3: Tukar public_token
const exchange = await client.itemPublicTokenExchange({
public_token: publicToken,
});
const accessToken = exchange.data.access_token;
const itemId = exchange.data.item_id;
Simpan accessToken di sisi server, yang terhubung dengan pengguna Anda. Token ini berumur panjang dan merupakan yang Anda gunakan untuk setiap panggilan di masa mendatang.
Langkah 4: Panggil endpoint produk
const accounts = await client.accountsGet({ access_token: accessToken });
const balance = await client.accountsBalanceGet({ access_token: accessToken });
Endpoint produk yang harus Anda ketahui
- Auth mengembalikan nomor akun dan routing untuk ACH (
/auth/get). - Balance mengembalikan saldo real-time, melewati cache (
/accounts/balance/get). - Transactions mengembalikan data transaksi yang dibersihkan hingga 24 bulan (
/transactions/sync). - Identity mengembalikan nama pemegang akun, email, telepon, alamat (
/identity/get). Jika kasus penggunaan Anda murni KYC, bandingkan dengan penyedia khusus dalam rangkuman API KYC terbaik kami. - Investments mengembalikan kepemilikan dan transaksi investasi (
/investments/holdings/get). - Liabilities mengembalikan rincian pinjaman mahasiswa, kartu kredit, dan hipotek (
/liabilities/get). - Income mengembalikan data penggajian melalui Plaid Income (
/credit/payroll_income/get).
Menguji API Plaid dengan Apidog
Menguji Plaid secara menyeluruh canggung karena langkah Link terjadi di browser. Anda masih memerlukan cara yang andal untuk menjangkau endpoint sisi server dengan payload yang valid, melihat bagaimana kesalahan muncul, dan berbagi permintaan yang berfungsi dengan rekan tim. Apidog menanganinya lebih baik daripada kebanyakan alat.
Impor spesifikasi OpenAPI Plaid ke Apidog dan Anda mendapatkan setiap endpoint yang sudah dikonfigurasi dengan tipe, contoh body, dan header otentikasi yang tepat. Anda dapat membuat set variabel lingkungan sandbox (client_id, secret, access_token) dan beralih ke produksi dengan satu klik. Permintaan berantai memungkinkan Anda menjalankan linkTokenCreate → sandboxPublicTokenCreate → itemPublicTokenExchange → accountsGet dalam satu alur, sehingga Anda dapat memverifikasi jabat tangan lengkap tanpa browser.
Server tiruan Apidog berguna ketika tim frontend Anda memerlukan respons /accounts/get sebelum integrasi backend Anda selesai. Jika Anda beralih dari alat lain, panduan kami tentang pengujian API tanpa Postman di tahun 2026 mencakup migrasi secara rinci. Unduh Apidog dan arahkan ke spesifikasi Plaid untuk memulai.
Kesalahan umum dan batas laju (rate limits)
Kesalahan Plaid akan mengembalikan error_type, error_code, dan error_message yang mudah dibaca manusia. Tangani keempat hal ini dalam produksi:
INVALID_CREDENTIALS: pengguna salah mengetik kata sandi bank. Minta mereka untuk mencoba lagi melalui mode pembaruan Link.ITEM_LOGIN_REQUIRED: bank membatalkan sesi (perubahan kata sandi, rotasi MFA). Picu Link dalam mode pembaruan untuk otentikasi ulang. Anda akan mengetahui hal ini melalui webhook, bukan panggilan yang gagal.RATE_LIMIT_EXCEEDED: Anda mencapai batas per-Item atau per-endpoint. Mundur, lalu coba lagi dengan jitter.PRODUCT_NOT_READY: Data transaksi masih ditarik. Coba lagi setelah webhookINITIAL_UPDATEdipicu.
Webhook
Lewatkan URL webhook saat Anda membuat link_token dan Plaid akan melakukan POST pembaruan ke sana. Tiga hal yang tidak dapat Anda abaikan adalah SYNC_UPDATES_AVAILABLE (transaksi baru), ITEM: LOGIN_REQUIRED (diperlukan otentikasi ulang), dan ITEM: ERROR (kegagalan permanen). Verifikasi tanda tangan JWT pada setiap webhook sebelum bertindak atasnya.
Batas laju
Plaid menerapkan batas laju per-Item per-endpoint. Misalnya, /accounts/balance/get dibatasi sekitar 5 panggilan per menit per Item dalam produksi. Batas tingkat klien agregat juga berlaku pada endpoint yang berat. Aturan praktisnya: polling webhook, cache saldo selama beberapa menit, dan jangan pernah memanggil Plaid dari jalur permintaan yang menghadap pengguna.
Harga Plaid
Plaid menggunakan harga berjenjang bayar-per-panggilan-API dalam produksi. Kira-kiranya:
- Sandbox: gratis, tidak terbatas.
- Development: gratis hingga 100 Item.
- Production:
- Auth: sekitar $1.50 per akun tertaut, sekali bayar.
- Balance: harga per panggilan.
- Transactions: biaya bulanan per-Item (sekitar $0.30).
- Identity: per panggilan.
- Investments / Liabilities / Income: biaya terpisah per-Item.
Plaid menegosiasikan harga kustom di atas volume tertentu, jadi daftar harga publik adalah titik awal. Periksa halaman produk Plaid untuk angka-angka terkini.
FAQ
Berapa lama access_token berlaku?Tidak terbatas, sampai pengguna mencabut akses atau bank membatalkan sesi. Simpan dalam bentuk terenkripsi dan jangan kedaluwarsa di sisi Anda.
Bisakah saya menggunakan Plaid hanya untuk verifikasi identitas?Anda dapat menggunakan Plaid Identity, tetapi jika kebutuhan utama Anda adalah KYC, Anda mungkin lebih baik dilayani oleh produk verifikasi khusus. Kami membahas pro dan kontranya dalam panduan kami tentang cara menggunakan Stripe Identity API.
Apakah Plaid mendukung negara di luar AS?Ya. Plaid mencakup AS, Kanada, Inggris, dan sebagian besar UE. Dukungan negara bervariasi per produk; periksa parameter kode negara dalam panggilan /link/token/create.
Apa yang terjadi jika pengguna mengubah kata sandi bank mereka?Item tersebut akan berpindah ke status ITEM_LOGIN_REQUIRED dan Anda akan menerima webhook. Picu Plaid Link dalam mode pembaruan dan pengguna akan melakukan otentikasi ulang tanpa kehilangan access_token mereka.
Bisakah saya menguji alur Link tanpa browser sungguhan?Ya. Endpoint /sandbox/public_token/create melewati Link sepenuhnya dan mengembalikan public_token yang dapat Anda tukarkan. Gunakan ini untuk pengujian integrasi otomatis.
Bagaimana cara menangani Plaid dalam pengembangan lokal?Simpan secret sandbox di file .env Anda dan hubungkan lingkungan pengembangan Anda ke PlaidEnvironments.sandbox. Gunakan tunneling (ngrok, Cloudflare Tunnel) untuk menerima webhook secara lokal.
