How Wave migration works
No fancy OAuth flow here. You’ll export CSVs from Wave, then upload them to Pluvel.Plan for about 30-60 minutes to export from Wave and import to Pluvel. It’s not hard, just manual.
What you can import
| Data | Import method |
|---|---|
| Chart of Accounts | CSV export |
| Customers | CSV export |
| Vendors | CSV export |
| Products/Services | CSV export |
| Invoices | CSV export |
| Transactions | CSV export |
| Bank transactions | Connect bank directly (recommended) |
Exporting from Wave
Export transactions
Go to Accounting → Transactions, click Export, and download the CSV. Select your desired date range.
Importing to Pluvel
Upload chart of accounts first
Always start with the chart of accounts — this sets up your account structure.
How columns map
Common Wave CSV columns map like this:| Wave column | Pluvel field |
|---|---|
| Transaction Date | Date |
| Description | Description |
| Account | Account |
| Debit | Debit |
| Credit | Credit |
| Category | Category |
Handling Wave features
Wave Payments
Wave Payments transactions export like regular transactions. The income appears in your transaction export.Recurring invoices
Wave recurring invoices don’t export. Recreate them in Pluvel after migration — takes about 2 minutes each.Wave Payroll
Employee data doesn’t export via CSV. Set up employees manually in Pluvel, or use our Gusto/ADP import if you’re migrating payroll from those providers.Receipts
Receipt images attached in Wave don’t export. Download any important receipts before canceling Wave.Don’t import bank transactions from Wave
Here’s a better approach:- Connect your bank directly via Plaid in Pluvel
- Import the last 24 months of transactions directly from your bank
- This is more accurate than Wave’s export
Verification checklist
After importing, check these boxes:- Chart of accounts matches Wave
- Customer balances match
- Vendor balances match
- Bank account balances match
- P&L for last month matches
- Balance sheet totals match
Common issues
CSV upload fails
CSV upload fails
Common fixes:
- Encoding issue — Save as UTF-8 CSV, not just “CSV”
- File too large — Split into smaller chunks and import sequentially
- Special characters — Remove or escape characters like emojis or unusual punctuation
Accounts don't match up
Accounts don't match up
Wave and Pluvel may categorize accounts differently. During import, you can reclassify accounts to the correct Pluvel category.
Seeing duplicate transactions
Seeing duplicate transactions
If you import Wave transactions AND connect your bank via Plaid, you’ll see duplicates. Choose one source per date range. Mark duplicates as duplicates in your transaction feed.
Missing invoices
Missing invoices
Only unpaid/open invoices typically need importing. Paid invoices already exist as transactions in your ledger — you don’t need the invoice record too.
After migration
- Connect your banks — Set up Plaid for ongoing transaction sync
- Test invoicing — Create a test invoice to make sure everything works
- Recreate recurring items — Set up any recurring invoices or bills
- Cancel Wave — Once verified, cancel your Wave account
Connect your bank
Set up automatic bank transaction imports.