What Plaid Connects To
Plaid enables connections to:- Depository Accounts: Checking and savings accounts
- Credit Cards: Credit card accounts and transactions
- Loans: Mortgages, auto loans, student loans
- Investments: Some brokerage accounts (via Plaid Investments product)
Supported Regions
- US (
plaid_region: us): US financial institutions - EU (
plaid_region: eu): European banks and institutions
Each region requires separate API credentials. You can configure both regions to support accounts from both geographies.
Prerequisites
Create a Plaid Account
Sign up for a free Plaid account at https://dashboard.plaid.com/signup
- Development: Free for testing with 100 Items
- Production: Requires approval and has per-item costs
Get API Credentials
From your Plaid Dashboard:
- Navigate to Team Settings → Keys
- Copy your
client_id(same for all environments) - Copy the appropriate
secretfor your environment:- Sandbox: For testing
- Development: For real accounts in dev mode
- Production: For live deployment
Configuration
Set the following environment variables:.env
Connecting a Plaid Account
Add Account via Plaid
- Click “Add Account”
- Select “Connect with Plaid”
- Choose your region (US or EU)
- Select account type:
- Depository (Checking/Savings)
- Credit Card
- Investment
- Loan
Authenticate with Your Bank
The Plaid Link interface will open:
- Search for your financial institution
- Enter your online banking credentials
- Complete any multi-factor authentication
- Select which accounts to connect
Data Syncing
Plaid syncs the following data:Transactions
- Historical transactions (up to 24 months, depending on institution)
- New transactions as they post
- Pending transactions (if supported by institution)
- Transaction metadata: merchant name, category, location
Balances
- Current balance
- Available balance
- Credit limits (for credit cards)
- Real-time balance updates via webhooks
Account Details
- Account name and mask (last 4 digits)
- Account type and subtype
- Currency
- Institution information and logo
Sync Frequency
- Webhooks Enabled: Real-time updates when new transactions are available
- Manual Sync: Click the sync button on any Plaid account
- Automatic Sync: Daily background sync for all accounts
Plaid Items can be manually synced at any time. If an item is already syncing, additional sync requests are queued.
Connection Management
Updating Expired Connections
If your bank credentials change or the connection expires:Removing a Connection
Troubleshooting
”Item Login Required” Error
Cause: Your bank credentials have changed or the connection has expired. Solution: Click “Update Connection” and re-authenticate.No Transactions Syncing
Checklist:- Verify the Plaid Item status is “good” (not “requires_update”)
- Check that webhook URL is configured correctly
- Ensure the Plaid product includes
transactions - Manually trigger a sync to force a refresh
Duplicate Transactions
Cause: Multiple Plaid Items connected to the same account, or mixing Plaid with manual entry. Solution:- Only connect each bank account once
- Use account reconciliation to mark duplicates
Institution Not Found
Cause: Not all institutions support all Plaid products. Solution:- Try SimpleFIN as an alternative for US banks
- Use CSV Import for unsupported institutions
API Reference
Sure uses the Plaid Ruby SDK (gemplaid):
Creating a Link Token
Processing Transactions
Handling Webhooks
Webhooks are received at:- US:
/webhooks/plaid(app/controllers/plaid_items_controller.rb:106) - EU:
/webhooks/plaid_eu(app/controllers/plaid_items_controller.rb:112)
Supported Products
Plaid offers multiple products. Sure primarily uses:- ✅ Transactions: Core transaction data
- ✅ Auth: Account and routing numbers
- ✅ Balance: Real-time balance data
- ✅ Investments: Holdings and positions (for Investment accounts)
- ✅ Identity: Account holder information
Best Practices
- Use Webhooks: Enable webhooks for real-time transaction updates
- Handle Update Flows: Implement UI to guide users through connection updates
- Monitor Status: Regularly check PlaidItem status and prompt users to reconnect
- Respect Rate Limits: Don’t sync too frequently; webhooks reduce the need for polling
- Test in Sandbox: Use Plaid’s sandbox environment for development
Additional Resources
Plaid Documentation
Official Plaid API documentation
Plaid Dashboard
Manage your Plaid integration
SimpleFIN Alternative
Privacy-focused alternative for US banks