Live AI Engine Active
Import guide

Bring your business into ReadyBooks

Move your customers, items, stock, invoices and bills over from Tally, Busy, Marg, Zoho Books, Vyapar or QuickBooks — using their own exports or our ready-made templates. This guide shows exactly how each file should look and what happens when it lands.

How importing works

Six steps, one screen each. You are never more than a preview away from knowing exactly what will land.

  1. 1

    Download a template

    Every type of data has a “Download import template” button. You get the right columns, a few example rows to copy, and an Instructions tab explaining each field.

  2. 2

    Fill in your data

    Paste your records under the matching columns — or skip the template entirely and export the list straight from Tally, Busy, Marg, Zoho or QuickBooks.

  3. 3

    Upload the file

    Open Import Data in ReadyBooks, choose what you are importing, and drop in your Excel or CSV file.

  4. 4

    Map the columns

    ReadyBooks lines up column names it recognises automatically. Anything it is unsure about, you point to the right field once, on a single screen.

  5. 5

    Preview and fix

    Every row is checked before anything is saved. Invalid rows are flagged with the exact reason, so you can correct the source file and try again.

  6. 6

    Import

    Approve, and your data lands — with journal entries, stock movements and party balances posted for documents. Re-running follows the behavior you selected: add-only skips matches, while supported imports can update them or update and add.

Customers & vendors (parties)

One row per customer or vendor. Import these first — invoices and bills reference them by name.

  • Give each party a name, and a GSTIN where you have one — it drives the correct GST treatment on their documents.
  • Billing and shipping address, state, phone and email all import when present; blank cells are simply left empty.
  • A single party can be both a customer and a vendor — set the customer/vendor flags accordingly.

Items (products & services)

One row per item, with its selling price, purchase rate, HSN/SAC code and tax rate. Import items before invoices so line items match instead of being auto-created bare.

  • Opening stock: put the quantity in Opening Stock Qty and the per-unit cost in Opening Rate — ReadyBooks seeds your stock position. Leave the As-of date blank to use the import day.
  • Opening columns seed NEW items only. Re-importing a file to update prices or details leaves existing stock untouched — adjust stock with a stock adjustment, not a re-import.
  • Item type sets the role: goods, service, fixed asset, and now Packing Material and Consumable (a Busy/Tally “Stores & Spares” list imports as Consumable).
  • Categories (Comma-Separated) carries the complete ordered category set; the first is primary. Quote a name containing a comma, for example Retail,"Home, Kitchen".
  • The Items template and export also carry barcode, tax/cess, replenishment, tracking/variants, pharmacy fields and fixed-asset defaults. Preferred Vendor needs Parties first; Fixed Asset Account Code needs the Chart of Accounts first.
  • Attach attributes like Colour or Size right on this sheet — see the Item attributes section below.
  • Units can be typed the way you write them (“dozen”, “box”); they map to the official GST unit codes automatically.
  • The one-row item export carries aggregate current stock for migration, not warehouse, batch/serial or variant-level stock. Move those operational positions through the relevant stock workflows.

Item attributes (Size, Colour, GSM…)

Attributes describe variations of an item. You can attach them in two ways, and they round-trip on export and re-import — as long as the attribute name avoids the cell’s own syntax (see the last point).

  • On the Items sheet: fill the Attributes column as “Name=Value; Name2=Value2”, e.g. “Colour=Red; Size=L”. If a value itself contains a semicolon, wrap it in double quotes: Size="8; 10".
  • With the Item Attributes template: use one row per attribute. Put dropdown options in Dropdown Values, separated by commas; wrap an option containing a comma in double quotes, for example Acme,Zenith,"Warm, White". For text, number, date or serial, set Field Type and leave Dropdown Values blank. A blank Field Type defaults to dropdown.
  • Unique Across Items and Show on Invoices / Bills are optional Yes/No settings. Blank preserves an existing setting and defaults to No for a new attribute. Older one-row-per-option and Busy multi-sheet files remain supported.
  • An attribute’s field type can never be changed by import — if “GSM” already exists as a number, a row declaring it as a dropdown is rejected with a message telling you to rename it or match the existing type.
  • Re-importing merges: dropdown options are only ever added, never removed.
  • Updating an existing item: a filled Attributes cell REPLACES that item’s whole attribute set, so list every attribute you want to keep. A blank cell leaves the existing attributes untouched.
  • Attribute names cannot contain ; = or " — those characters are the cell’s own syntax. New names reject them; an older attribute named that way is flagged “Not exportable” on the Attributes screen and is left out of item exports until you rename it.

Inventory masters (categories, units & warehouses)

These companion workbooks keep repeating master data normalized and make clean exports safe to re-import.

  • Item Groups & Categories preserves the parent hierarchy and each category’s complete Assigned Attributes list. Import Item Attributes first, then taxonomy, then Items.
  • Units & Conversions uses one row per custom unit or alternate item conversion. Conversion rows resolve the Item SKU first, so import Items before this workbook.
  • Warehouses carries active standard warehouse details and the default flag. Service-owned quarantine, expired and jobworker buckets are deliberately excluded.
  • Warehouse quantities do not belong in the warehouse master. Multi-location, batch/serial and variant stock need stock movements that preserve those identities.

Bills of materials (BOMs)

One row per material that goes into a finished product. Import your item master first so every material and output resolves to a real item.

  • Repeat the BOM/product name on each material row; one row per material. If the same material appears twice, the rows are merged into one and you get a warning.
  • A sub-assembly row names another BOM as its “material” — that child BOM must appear earlier in the same file, or already be imported.
  • Labour, Overhead and Misc Cost columns become the product’s default per-run costs, applied each time you run production.

Production orders (draft plans)

Move complete, reviewable production plans through one grouped workbook after their items and BOMs exist. ReadyBooks never fabricates completed shop-floor or accounting history from spreadsheet data.

  • Choose Add new only, Update existing only, or Update and add. Group rows by Source System plus Source Production No, repeated on every row, with exactly one Order row in each group.
  • The Order row carries the BOM, planned quantity and date, output attributes, demand link and notes. A new draft freezes the BOM version effective on that planned date and stamps its normal materials, routing and default costs.
  • Material rows are optional. When present, they fully replace the draft’s editable component list, so include every line to keep; you can change quantities, add an existing item and pin its attributes, warehouse or batch. When omitted, a create uses the BOM recipe and an update preserves the normal form behavior.
  • Additional Cost rows are optional and carry the complete itemized labour, overhead and other-cost breakdown. When omitted, creates use BOM/routing defaults and updates preserve costs. Use Clear Additional Costs = Yes to store no costs. Cost rows and clearing require Inventory cost visibility.
  • An update can target a draft only and must keep the same BOM and frozen BOM version. A later BOM revision is never pulled into an existing plan by spreadsheet.
  • For updateable planning fields, a mapped blank cell clears the value; an unmapped column preserves it. Update and add updates a matching source key and creates a key it has not seen before; it never guesses from a source-less row.
  • Every group imports in one transaction: a bad header, material or cost rolls the complete group back. Status must be blank or Draft; actual dates and consumption, stock movements, operation/QC/scrap logs and journals remain history, not import inputs.
  • Output and Material Attributes must identify existing variant combinations. Demand Type plus Demand Number can link the draft to an existing quotation, proforma or sales invoice; import those customer documents first or leave both cells blank.

Sales invoices & purchase bills

The one convention people trip on: a document with three line items is three rows sharing the same document number.

  • Repeat the Invoice/Bill number on every row of the same document — that is what groups them.
  • Put header details (date, customer/vendor, GST type, payment cells) on the first row only; leave them blank on the continuation rows.
  • Payment Status plus Amount Paid control the auto-recorded payment: “paid” with no amount records the full total; “partial” requires an Amount Paid — nothing is invented for you.
  • Imported invoices, bills and credit/debit notes post as finalised documents — journal entries, stock and party balances included. Quotations and proforma land as drafts.
  • Your invoice number is imported exactly as written (never renumbered) and is filed under the fiscal year of the Invoice Date — not any year written inside the number itself. Re-using a number across two fiscal years is legal, but the duplicate check matches numbers across years: un-tick the skip in the duplicate dialog for rows that are genuinely new.

Sales returns

Returns import against the invoices they came from — the invoice is the anchor for stock, pricing and how much can still be returned.

  • Import your sales invoices first: every return names its Original Invoice No, and the items must already exist.
  • One row per returned line item, grouped by the Return No — same convention as invoices.
  • Returned quantity is capped at what the invoice still has un-returned; over-returns are rejected row by row.
  • Imported returns post their stock and ledger effects (including the COGS reversal) immediately; re-importing the same file skips returns whose number already exists.
  • Batch-tracked items cannot be imported as returns yet — record those in the app so the lot can be chosen.
  • A sales return alone is not a GST document — convert it to a credit note in the app for the reduction to appear in GSTR-1/3B.
  • Import one register, not both: if your credit-note sheet already covers these returns (Tally Rejection In + Credit Note pairs), importing both double-reverses revenue, GST and receivables.

Opening balances

One row per party carrying the receivable or payable they owed as at your cut-over date.

  • Import opening balances OR the historical invoices for the pre-cut-over period — not both, or you double-count the party’s outstanding.
  • Unknown parties are auto-created, but importing the Parties sheet first gives them their full details.

Bank statements

Upload the statement your bank exports — ReadyBooks reads the common Indian bank layouts (SBI, HDFC, ICICI, Axis, Kotak) out of the box.

  • Date, narration/description, and the debit and credit (withdrawal/deposit) columns are detected automatically; map anything unusual in the wizard.
  • Imported transactions feed reconciliation, where you match them against invoices, bills and payments.

Frequently asked questions

Ready to migrate your data?

Import your customers, items, stock and history in an afternoon — GST, journal entries and balances posted for you. Free to start.

Chat on WhatsApp