Quick Start
Choose Your Environment
Recommendation: Start with
sandbox to test the flow, then move to development for real bank testing.
Step 1: Get Plaid Credentials
- Sign up at Plaid Dashboard
- Go to Team Settings → Keys in Dashboard
- Note your:
- Client ID (e.g.,
5f8c1b2a3d4e5f6a7b8c9d0e) - Secret (per environment - sandbox, development, production)
- Client ID (e.g.,
- Go to Developers → Webhooks
- Add a webhook endpoint:
https://your-project.supabase.co/functions/v1/plaid-webhook
Step 2: Configure Supabase Secrets
Option A: Using Lovable Cloud (Recommended)
- Go to your Lovable project → Settings → Cloud → Secrets
- Add the following secrets:
Option B: Using CLI
Verify Secrets
Step 3: Enable Feature Flag
- Navigate to Finance & Accounting → Settings
- Go to the Integrations tab
- Toggle Enable Plaid Integration to ON
- Click Save Changes
Step 4: Test the Connection
- Navigate to Finance → Bank Accounts
- Click Connect Bank Account
- If both Teller and Plaid are enabled, select Plaid from the provider dialog
- Plaid Link modal opens
- In Sandbox mode:
- Select any institution (e.g., “First Platypus Bank”)
- Use test credentials (see below)
- Select accounts to connect
- Verify the account appears with a “Plaid” provider badge
Sandbox Test Credentials
Use these credentials when connecting banks in sandbox mode:
Test Institution ID:
ins_109508 (First Platypus Bank)
For MFA testing:
- Username:
user_good - Password:
mfa_device(triggers device-based MFA) - Code:
1234(any 4-digit code works in sandbox)
Step 5: Sync Transactions
- After connecting, click the Sync button on the account card
- Transactions will be imported into Bank Statement Lines
- A toast notification shows the sync results:
- Transactions added
- Transactions modified
- Transactions removed
user_transactions_dynamic credentials to generate new transactions daily.
Troubleshooting
🚨 “Invalid client_id” Error
Cause: PLAID_CLIENT_ID secret not configured or incorrect. Fix:- Verify the secret exists:
supabase secrets list - Check the value matches your Plaid Dashboard
- Secrets are case-sensitive
🚨 “Plaid integration is not enabled”
Cause: Feature flag not enabled in FA Module Settings. Fix:- Navigate to Finance → Settings → Integrations
- Enable “Plaid Integration”
- Save changes
🚨 Plaid Link Modal Doesn’t Open
Cause: Link token creation failed. Check:- Browser console for errors
- Edge function logs in Supabase Dashboard
- Verify all three secrets are set (CLIENT_ID, SECRET, ENVIRONMENT)
🚨 “Institution not supported”
Cause: The selected institution isn’t available in sandbox mode. Fix:- Use sandbox-supported institutions (any from the Plaid Link flow)
- Switch to
developmentenvironment for real institutions
🚨 Webhook Events Not Processing
Cause: Webhook endpoint not configured or signature verification failing. Check:- Webhook URL is correct in Plaid Dashboard
- Edge function logs for signature errors
- Function is deployed:
supabase functions list
🚨 Rate Limiting (429 Error)
Cause: Too many API requests in a short period. Fix:- Wait 60 seconds and retry
- Plaid has rate limits per client ID
- The edge functions have built-in exponential backoff
Environment-Specific Setup
Sandbox Mode (Recommended for Development)
- Uses simulated bank data
- No real bank connections
- Test credentials work (see above)
- Transactions are generated synthetically
Development Mode (Real Banks, Limited)
- Connects to real bank OAuth flows
- Limited to 100 Items (bank connections)
- Free tier
- Real transaction data
Production Mode
- Full production access
- Requires Production access approval from Plaid
- Paid based on usage
- Contact Plaid for pricing
Webhook Events Handled
Theplaid-webhook edge function processes these events:
Required Secrets Summary
Provider Comparison
See Also
- Plaid Documentation
- Plaid Link for Web
- Plaid Sandbox Guide
- FA-20 Specification
- Teller Setup Guide