Bulk-load masters and transactions from CSV / Tally / Zoho, and bulk-export back to CSV for sharing with your CA or another tool.
Time to read: ~10 minutes. You’ll need: Owner / Manager role; for migration from Tally / Zoho, the export file from the source tool.
Where to find the screens
From the sidebar: Setup → Import / Migrate.
The page has tabs for each entity (Customers / Vendors / Items / Accounts / Journal) plus dedicated Tally and Zoho migrators, and an Export tab.
CSV import — masters
For each of the five master types (Customers, Vendors, Items, Accounts, Journal Entries), the flow is the same:
- Setup → Import / Migrate → pick the tab.
- Either:
- Upload a CSV file (.csv).
- Paste CSV text into the textarea.
- The file is parsed via FileReader → textarea (uploaded files become text immediately, no server round-trip).
- Review the parsed preview.
- Click Import.
Booksmor processes row-by-row, reporting created / updated / skipped counts at the end.
CSV format per entity
Customers (header row):
name,gstin,country_code,state_code,address_line1,address_line2,city,pincode,email,phone
Vendors — same as customers.
Items (header row):
name,sku,hsn_sac,unit,sale_rate,purchase_rate,tax_rate,product_type
product_type is one of goods / service / digital.
Accounts (header row):
code,name,account_type,category_name
account_type is one of asset / liability / equity / income / expense.
Journal Entries (header row):
voucher_date,reference_no,narration,account_code,debit,credit
Multiple rows with the same voucher_date + reference_no form one journal voucher.
How matching works
- Customers / Vendors: matched by name. Existing rows are updated; new names are created.
- Items: matched by SKU. Existing SKUs are updated; new SKUs are created. Items with no SKU are matched by name.
- Accounts: matched by code. Existing codes updated; new codes created.
- Journal Entries: each (voucher_date, reference_no) pair is one voucher. Re-importing the same data creates duplicate vouchers — Journal import isn’t idempotent (intentionally — sometimes you want to re-import).
Bulk import — best practices
- Always export first, then re-import. Booksmor’s CSV exports match the import schemas exactly. Use them as templates.
- Test on a small batch first. Import 5 rows, verify they look right in the master list, then import the rest.
- Strip whitespace and special characters from SKUs. Trailing whitespace is a common cause of failed updates.
- Numeric values without symbols.
18not18%,100.00not₹100.
Tally migration
If you’re moving from Tally Prime or Tally ERP 9:
- In Tally, export your data as XML (Display → List of Accounts → Export As XML).
- Setup → Import / Migrate → Tally tab.
- Upload the .xml file.
- Booksmor parses the Tally XML and shows what it found:
- Masters (groups → categories, ledgers → accounts, stock items → products).
- Voucher types mapped (Sales → sales, Purchase → purchase, Receipt → receipt, etc.).
- Click Import.
Tally’s Indian flavour maps cleanly. Custom voucher types or unusual ledger structures may need cleanup post-import — Booksmor flags them in the report.
Zoho migration
If you’re moving from Zoho Books:
- In Zoho Books → Settings → Backup → Export — generate a backup ZIP.
- Setup → Import / Migrate → Zoho tab.
- Upload the .zip.
- Booksmor unpacks and parses each entity (customers, vendors, items, accounts, journals).
- Review the preview → Import.
Same shape as Tally — masters first, transactions second. Zoho’s data model is closer to Booksmor’s so the migration is usually cleaner.
CSV export
Use Export to dump masters or transactions to CSV — for sharing with your CA, archiving, or moving to another tool.
- Setup → Import / Migrate → Export tab.
- Pick what to export:
- Customers — full master list.
- Vendors — full master list.
- Items — full product master.
- Accounts — Chart of Accounts.
- Journal — every posted voucher’s ledger lines, in date order. Filter by date range.
- Click Download CSV.
The CSV downloads with column headers matching the import schemas — you can edit + re-import the same file safely.
Re-importing an exported file updates by SKU / code / name (per-entity matching rules above). Safe operation; doesn’t duplicate.
Common questions
Can I import sales invoices directly (not just journals)? Not in the current release. To migrate sales history, export from your source tool as journal entries, then import via the Journal tab. The voucher type becomes “journal” — not a true sales invoice, but the ledger impact is identical.
True voucher-type import (preserving sales/purchase/credit-note distinctions) is on the roadmap.
My CSV has extra columns Booksmor doesn’t know about. Extra columns are silently ignored. Only the expected column names are read. Custom-field columns (added via Form Designer) can be imported if the column name matches the custom field’s key.
Import says “row N: invalid” — what to fix? The error message names the column. Most common: trailing whitespace in IDs, wrong number format (₹100 instead of 100), wrong product_type value.
My account categories aren’t being created. Account categories are derived from the category_name column. Booksmor matches existing categories by name; missing ones are created. If the column is missing, accounts land in “Uncategorised”.
Tally / Zoho migrator failed mid-import. Some rows imported, others didn’t. Booksmor’s migrators are restartable — re-upload the same file; already-imported rows are recognised and skipped.
Can I import bank statements via the Import page? No — bank statements have their own flow at Daily → Bank Reconcile. See Bank Reconciliation.
Can I import opening balances?
Yes — via the Accounts import with opening_balance column (if your CSV has it). Or post a single Journal voucher dated 31-March (your FY start) with each account’s opening balance.
My Tally export has lakhs of rows. Will it work? Up to ~100,000 rows imports cleanly in one go. For larger, split the XML by year / month and import separately. Contact support for very-large-volume migrations — there’s a bulk-import CLI.
Troubleshooting
Upload button does nothing. Browser blocked the file dialog. Click Upload CSV again; if still blocked, check your browser’s popup-blocker for the Booksmor domain.
“File too large” error. The file is > a soft limit (10 MB by default). Split into smaller files or contact support for a one-off bulk import.
Parsed preview is empty. The CSV header row doesn’t match what Booksmor expects (column names case-sensitive). Verify against the schemas in this doc.
Imported customers appear in the list but vouchers using them fail with “customer not found”. A name mismatch between what you imported and what your vouchers reference. Cross-check: imported customer name might have trailing whitespace.
Need more help? Email support@booksmor.com with the file you tried to import (or a 5-row sample) and the error message.