Excel to Tally import for vouchers and ledgers

Import sales and purchase invoices, receipts, payments and ledgers into TallyPrime from an Excel or CSV file. Every row is checked and repeats are held back.

Updated 31 October 2026

Bulk Import saves many entries in TallyPrime from one Excel or CSV file. You match your columns. We check every row against your company before anything is saved. Only the rows that pass go in. Use it to move invoices, receipts, payments or party lists from a sheet into your books.

Before you start

  • Your company is connected, and it is open in TallyPrime. See Recording entries.

  • Your role is owner, admin or accountant. A viewer cannot import.

  • The parties, ledgers and stock items in your file are already in TallyPrime. Import missing ledgers first. Add missing stock items on the Inventory Management page.

  • Open Accounts and choose Bulk Import.

What you can import

One kind of entry per file. Choose it on the first step:

TypeHow the file is laid outRequired columns
Sales invoicesOne row per item, grouped by invoice number.Invoice number, Date, Customer, Sales account, Item, Quantity, Rate
Purchase invoicesOne row per item, grouped by supplier bill number.Bill number, Date, Supplier, Purchase account, Item, Quantity, Rate
ReceiptsOne row per receipt, against a bill or on account.Date, Received into, Received from, Amount
PaymentsOne row per payment, against a bill or on account.Date, Paid from, Paid to, Amount
Ledgers & PartiesOne row per party, under Sundry Debtors by default.Ledger name

Invoices can also have these columns: Discount %, Godown, CGST account, SGST account, IGST account, Place of supply, Reference and Narration. Receipts and payments can have Bill to settle, Reference and Narration. Ledgers can have Group, GSTIN, PAN, Registration type, State, Address, PIN code, Email, Phone, Opening balance, Dr or Cr, and Bill by bill. Bank statements have their own page. See Bank and card statements. If your file fits none of these, choose Custom import. Our team helps you set it up.

Prepare the file

  • Use a .csv or .xlsx file up to 5 MB. One import saves up to 500 entries. For invoices, that is 500 invoices with any number of item rows. If you have more, the first 500 go now. Import the rest as a second file. Save an old .xls file as .xlsx in Excel first.

  • Put the column headings in the first row. Do not use merged cells.

  • Enter dates as DD/MM/YYYY or YYYY-MM-DD. Enter amounts like 1,00,000.50. In a CSV file, put quotes around a value with a comma in it.

After you choose the type, Download sample file gives a CSV with the right headings and two example rows. Enter your data in it, or copy its headings into your own sheet.

Import the file

  1. 1

    Choose type: choose what the file holds.

  2. 2

    Upload file: drop the file here or choose it. Nothing is saved until you check the rows.

  3. 3

    Match columns: we match each TallyPrime field to one of your columns by its heading. Check the starred ones; they are required. Where no match was found, choose a column. Auto match starts again from the headings. File preview shows your first rows.

  4. 4

    When it says All required columns matched, press Check rows.

  5. 5

    Check rows: look at the results (see below). Then press Import. It shows the number of entries ready.

If your company has more than one godown, every invoice line needs one. Add a Godown column. Or choose a Default godown on the Match columns step for rows without one.

Check the rows

The check screen shows the Total entries, how many are Ready to import and how many Need fixing. You can search the Checked rows table. You can also show All, Ready or Needs fixing. Each problem names its row. For example:

  • a required value is empty, or a number or date cannot be read;

  • a party, ledger, item or godown is not in TallyPrime (check the spelling, or add it first);

  • rows of the same invoice have a different date, party or ledger;

  • a GSTIN has a typing mistake or does not match the state, or a PAN is not the one inside the GSTIN;

  • a ledger name is already in TallyPrime, or appears twice in the file;

  • a row’s values moved because a figure like 1,500 had no quotes in a CSV file.

When some rows have problems, View only problems shows only those rows. Download list saves them as a CSV with the row number and reason. Rows with problems are left out. You can import the ready rows now. Fix the rest in your file and import it again later.

What happens when you import

Entries are saved in TallyPrime one at a time. You can leave the page while this happens. The progress card shows how many were Saved in TallyPrime, Failed, already in TallyPrime, held back or cancelled.

  • If TallyPrime cannot be reached, the import shows Paused until TallyPrime can be reached. It goes on by itself when TallyPrime answers. The waiting entries have not failed.

  • Stop the rest stops entries not saved yet. Those already saved stay.

  • Save failed entries again tries the failed ones again. It skips those already in TallyPrime or held back. Or open See failed entries to fix each one in Activity History. Failed entries keep their details for 14 days. After that the button goes away. Then fix those rows in your file and upload it again.

How repeats are kept out

  • Every invoice needs its number. So a file imported twice does not save every invoice twice. If TallyPrime already has that invoice number, it is not added again. It counts under Already in books, not Failed. Save failed entries again skips it.

  • A receipt or payment may match one already saved from Balancely in that company. It is held back. Turn on Save entries that look like ones already saved from Balancely only if they really are new. You can also save a held-back entry on its own from Activity History.

  • Trying a failed entry again uses the same entry. So an entry that did reach TallyPrime is never saved twice.

What happens in TallyPrime

  • Each sales or purchase invoice number becomes one Sales or Purchase voucher with all its item rows. If the file has GST ledgers, TallyPrime works out the tax from each item’s GST rate.

  • Each receipt or payment row becomes a Receipt or Payment voucher. It settles the bill named in Bill to settle.

  • Each ledger row creates a new ledger under its group, with its GST details and opening balance.

  • Vouchers and ledgers already in TallyPrime are never changed. Each saved entry counts towards your plan’s TallyPrime entries for the month. Every row is listed in Activity History.

When something goes wrong

Each heading is the message as Balancely shows it. Find yours, or search every message on Fix a problem.

“Row 14: Customer “Sharma Trader” is not in TallyPrime. Check the spelling or add the ledger first.”

Where you see it: Accounts > Bulk Import, on the Check rows step, in the Checked rows table.

The party, ledger, stock item, group or godown in that row is not in your TallyPrime company. Capitals do not matter. But an alias does not match, and a small spelling difference is enough. Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    Compare the name in your file with the name in TallyPrime. Check each letter, space and full stop.

  2. 2

    If the spelling differs, correct it in your file and upload the file again.

  3. 3

    If it is missing, create it. Ledgers: a Ledgers & Parties import or the Ledgers & Parties page under Accounts. Stock items: the Inventory Management page. Godowns: in TallyPrime.

  4. 4

    Reload the Bulk Import page, upload the file again and press Check rows.

  5. 5

    Added the name in TallyPrime and it is still flagged? A name added in TallyPrime can take a few minutes to show. Reload the page and check the rows again.

It worked when: The row shows as Ready.

Next time: Import new parties as a Ledgers file first. Then import the invoices or receipts that use them.

“2 required columns left”

Where you see it: The Match columns step, beside Check rows, which stays greyed out.

A required field (marked with a star) has no column from your file. Columns are matched by their heading, so a heading worded differently is not found. Nothing has been saved in TallyPrime.

  1. 1

    Find each starred field that shows Choose the column for this..

  2. 2

    Open its list and choose the column from your file that holds that value.

  3. 3

    Or rename the heading in your file to the field’s name, such as Invoice number or Customer. Upload it again and press Auto match.

  4. 4

    Press Check rows once it says All required columns matched.

Next time: Download sample file gives the headings that match by themselves.

“Row 9: Date is empty.”

Where you see it: The Check rows step, in the Checked rows table and in Download list.

A required cell in that row is blank. Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    Press Download list to get every row to fix, with its reason.

  2. 2

    Enter a value in the empty cell in your file.

  3. 3

    Import the ready rows now and the fixed rows later. Or upload the whole file again.

Next time: Row numbers count the heading row as row 1 and skip blank rows. Remove blank rows from the sheet so the numbers match Excel’s.

“Row 6: Rate “12,50” is not a number we can read. Write it like 1,00,000.50.”

Where you see it: The Check rows step, in the Checked rows table.

The cell does not hold a number that can be read safely. Balancely does not guess. It refuses text, a comma in the wrong place (as in 1.000,50 or 12,50), or Dr or Cr on a quantity, rate or amount. Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    Write figures plainly, such as 1500, 1,500.50 or 1,00,000.50. A ₹ sign is fine.

  2. 2

    Remove Dr or Cr from quantity, rate and amount cells.

  3. 3

    Write a discount as a number from 0 to 99.99, without words.

  4. 4

    Give each receipt or payment an amount above 0.

  5. 5

    Save the file and upload it again.

“Row 3: Date “5-Apr-26” is not a date. Use DD/MM/YYYY or YYYY-MM-DD.”

Where you see it: The Check rows step, in the Checked rows table.

The date cannot be read. Dates must have a four-digit year and the day before the month, such as 05/04/2026. Month names and two-digit years are not read. Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    Choose the date column in Excel.

  2. 2

    Format the cells as a date in the style DD/MM/YYYY, or retype the dates that way.

  3. 3

    Check that no date is text such as “5th April”.

  4. 4

    Save the file and upload it again.

“Row 7: GSTIN “27AAPFU0939F1ZW”: This GSTIN has a typing mistake: its last character does not match the rest. Copy it again from the GST certificate or the GST portal.”

Where you see it: The Check rows step of a Ledgers & Parties import.

The GSTIN in that row is not right. Or its first two digits are for a different state than the State column. Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    Copy the GSTIN again from the party’s GST certificate. Or use Search Taxpayer on the GST portal.

  2. 2

    Make the State column match the GSTIN’s state, or leave State empty: it is then taken from the GSTIN.

  3. 3

    Save the file and upload it again.

“Row 4: “Sharma Traders” is already in TallyPrime. Change it there, or leave this row out.”

Where you see it: The Check rows step of a Ledgers & Parties import.

A ledger with that name is already in TallyPrime, or the name appears twice in your file. An import only creates new ledgers. It never changes existing ones. Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    If the ledger is already right in TallyPrime, leave the row out; the other rows can still be imported.

  2. 2

    To change an existing ledger’s details, change it in TallyPrime.

  3. 3

    If it is really a different party, give it a different name in your file.

  4. 4

    Remove the second copy of a name that is twice in the file, then upload again.

“Some rows have problems”

Where you see it: The Check rows step, above the table and beside Import.

Rows with problems are left out. Only ready rows are saved. One import saves up to 500 entries. For invoices, that is 500 invoices with any number of item rows. Nothing has been saved in TallyPrime yet.

  1. 1

    Press Download list to save every row to fix, with its reason.

  2. 2

    Press Import to save the ready rows now. Or fix everything first.

  3. 3

    Fix the listed rows in your file, and import a file with only those rows afterwards.

  4. 4

    More than 500 ready? Put the rest in a second file. Import it when the first is done.

Next time: You can safely import a fixed file again. Invoices already in TallyPrime by number are not added twice. Repeated receipts and payments are held back.

“Paused until TallyPrime can be reached”

Where you see it: The import’s progress card on Bulk Import.

TallyPrime stopped answering part-way through. The connector stopped, TallyPrime or the company closed, or a message box is open in TallyPrime. The reason shows above this line. Entries still waiting have not failed. Entries counted as Saved in TallyPrime are in your books. The rest are waiting, not lost.

  1. 1

    Start the Balancely connector on the TallyPrime computer.

  2. 2

    Open TallyPrime with the same company, and close any message box open in it.

  3. 3

    Wait. The import carries on by itself within a couple of minutes.

  4. 4

    Do not upload the file again while it waits.

It worked when: The progress card counts up again and the warning goes away.

Next time: See connector troubleshooting for each reason TallyPrime can be out of reach.

“3 invoices were already in TallyPrime”

Where you see it: The import’s progress card, and the Already in books figure.

TallyPrime already has an invoice with that number (for a purchase, from that supplier). This stops a file imported twice from saving everything twice. These are not counted as failed. Those invoices were not added again. The ones already in TallyPrime are unchanged.

  1. 1

    If you imported this file before, nothing more is needed.

  2. 2

    Is one really a new invoice? Give it a new number in your file and import that row.

“4 entries need fixing”

Where you see it: The import’s progress card, after it finishes.

TallyPrime refused these entries. Each one has its own reason, such as a missing ledger or a date outside the books. The failed entries are not in TallyPrime. The ones saved stay saved and are never added twice.

  1. 1

    Press See failed entries to open them in Activity History.

  2. 2

    Read each reason. The Recording entries guide explains them.

  3. 3

    Fix the cause in TallyPrime, for example create the missing ledger. Or fix the entry in Activity History.

  4. 4

    Back on the progress card, press Save failed entries again.

  5. 5

    Does the card say some entries can no longer be saved from here? They failed more than 14 days ago. Fix those rows in your file and upload it again. Rows already saved are not added twice.

It worked when: The Failed figure goes down and Saved in TallyPrime goes up.

Next time: Failed details are kept for 14 days. After that the button is gone. The card says the entries can no longer be saved from here. Fix those rows in your file and upload it again.

“Choose a .csv or .xlsx file. Save an older .xls file as .xlsx in Excel first.”

Where you see it: The Upload file step of Bulk Import, under the drop area.

Only .xlsx and .csv files are read. An old .xls file, an .ods file or a PDF is refused. Nothing has been saved in TallyPrime.

  1. 1

    Open the file in Excel.

  2. 2

    Choose File > Save As, then choose Excel Workbook (.xlsx) or CSV UTF-8.

  3. 3

    Upload the new file.

“That file could not be read. If it has a password, remove it in Excel first. If not, open it in Excel, save it again as .xlsx or .csv, and upload it again.”

Where you see it: The Upload file step of Bulk Import.

The file could not be opened. It may be damaged, not really an Excel file, or locked with a password. A locked .xlsx file shows the second message, has a password. Nothing has been saved in TallyPrime.

  1. 1

    Open the file in Excel.

  2. 2

    If Excel asks for a password, enter it. Then choose File > Info > Protect Workbook > Encrypt with Password. Clear the password and press OK.

  3. 3

    Choose File > Save As and save it as .xlsx or CSV UTF-8.

  4. 4

    Upload the new file.

“That file has no rows under its heading row. Add rows and upload it again.”

Where you see it: The Upload file step of Bulk Import.

Only the first sheet of an Excel workbook is read. Its first row must be the headings. Data on another sheet looks like an empty file. Nothing has been saved in TallyPrime.

  1. 1

    Move your data to the first sheet of the workbook. Or remove the sheets before it.

  2. 2

    Put the column headings in row 1 and the data directly under them.

  3. 3

    Save the file and upload it again.

“Row 5: has more values than there are column headings, so its values have shifted. A value with a comma in it, like 1,500, needs quotes around it in a CSV file.”

Where you see it: The Check rows step, for a CSV file.

In a CSV file, a comma splits columns. So 1,500 without quotes becomes two cells. Every value after it moves one column. Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    Open the CSV in Excel and save it again as CSV UTF-8. Excel adds the quotes itself.

  2. 2

    Or save the sheet as .xlsx, which has no such problem.

  3. 3

    Upload the file again.

“We could not check some names in TallyPrime right now. They are checked when each entry is saved.”

Where you see it: A yellow alert above the table on the Check rows step.

Balancely could not read the ledgers, items or godowns from TallyPrime. So the names in your file are not checked yet. Nothing has been saved in TallyPrime yet.

  1. 1

    Check that the connector is open and TallyPrime has the company open.

  2. 2

    Press Back, then Check rows again.

  3. 3

    If you import anyway, a row with a wrong name fails. It then shows in Activity History.

“Row 8: Date differs from row 6 of the same invoice.”

Where you see it: The Check rows step of a sales or purchase invoice import.

Rows with the same invoice or bill number become one voucher. So they must have the same date, party, sales or purchase ledger, GST ledgers, place of supply, reference and narration. Nothing has been saved in TallyPrime. The whole invoice is left out.

  1. 1

    Make those columns the same on every item row of that invoice number.

  2. 2

    If they really are two invoices, give one of them a different number.

  3. 3

    Save the file and upload it again.

“Row 2: Place of supply “MH” is not an Indian state name we recognise.”

Where you see it: The Check rows step.

Enter each state by its full name. Short forms such as MH or TN do not work. GST state codes such as 27 do not work either. Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    Write the full state name, as TallyPrime lists it: Maharashtra, Tamil Nadu, Delhi.

  2. 2

    Save the file and upload it again.

“Row 11: Godown is empty. This company keeps stock in 3 godowns — add a Godown column, or choose one for these rows on the previous step.”

Where you see it: The Check rows step of an invoice import.

Your company keeps stock in more than one godown. So every item line needs a godown, and this row has none. Nothing has been saved in TallyPrime. The invoice is left out.

  1. 1

    Press Back to the Match columns step.

  2. 2

    Choose a Default godown for rows that leave it empty. Or match your Godown column.

  3. 3

    Press Check rows again.

“Row 7: PAN “ABCDE1234”: A PAN is 10 characters, like ABCDE1234F.”

Where you see it: The Check rows step of a Ledgers & Parties import.

The PAN is not 10 characters. Or it does not match the PAN inside the GSTIN (characters 3 to 12). Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    Check the PAN on the PAN card or the GST portal.

  2. 2

    Correct the PAN or the GSTIN, or leave PAN empty when a GSTIN is given.

  3. 3

    Save the file and upload it again.

“Row 5: Say Dr or Cr for the opening balance of a ledger under Indirect Expenses.”

Where you see it: The Check rows step of a Ledgers & Parties import.

The side of the opening balance is not clear. For a customer or supplier the side is assumed; under TallyPrime’s other groups, such as expenses, incomes, bank or capital, you must say it. A minus sign is not guessed. Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    Write the balance as a plain figure, without a minus sign.

  2. 2

    Enter Dr or Cr in the Dr or Cr column. Or put it after the number, such as 25,000.00 Dr.

  3. 3

    Make sure the two do not disagree.

  4. 4

    Save the file and upload it again.

“Row 3: PIN code must be 6 digits.”

Where you see it: The Check rows step of a Ledgers & Parties import.

A ledger detail is not in a form TallyPrime accepts. Nothing has been saved in TallyPrime. The row is left out of the import.

  1. 1

    Remove double quotes from ledger names.

  2. 2

    Use one of the registration types listed in the message, as in the sample file.

  3. 3

    Enter the PIN code as 6 digits and the email in full. Enter Yes or No for Bill by bill.

  4. 4

    Save the file and upload it again.

“2 entries were not sent”

Where you see it: The import’s progress card, the Held back as repeats figure, the entry in Activity History, and the Import finished notification.

Balancely already saved a receipt or payment with exactly the same details in this company. It may have come through this connection or another one. So it was held back to avoid entering it twice. The check is only against what Balancely saved before, not all of TallyPrime. The held-back entries were not saved in TallyPrime.

  1. 1

    Look for the earlier entry in TallyPrime. Use the date and voucher number shown on the row.

  2. 2

    If it is there and this is the same receipt or payment, do nothing.

  3. 3

    Is it really a second one? Open it in Activity History and save it from there.

  4. 4

    The row may say TallyPrime saved it without confirming. If it is not in TallyPrime, save it from Activity History.

I stopped an import and need to send the rest

Where you see it: The import’s progress card shows Cancelled.

A stopped import cannot be restarted. Entries saved before it stopped stay in TallyPrime. The rest were never saved. The same happens when the person who started it loses access to the company. Entries counted as Saved in TallyPrime are in your books. The rest are not.

  1. 1

    From the progress card, open the import’s entries in Activity History to see which rows were saved.

  2. 2

    Make a file with only the rows that were not saved.

  3. 3

    Import that file. A row that is already saved does no harm. An invoice already in TallyPrime is not added again. A same receipt or payment is held back.

“This entry went to this company in another import on 12 Oct 2026 (TallyPrime no. 145), so it was not sent again. Check TallyPrime before entering it again.”

Where you see it: When you resend a failed import entry from Activity History or with Save failed entries again.

Another import already saved this entry in this company. Saving it again here would enter it twice. Nothing new was saved in TallyPrime.

  1. 1

    Look up that voucher number in TallyPrime.

  2. 2

    If the entry is there, nothing more is needed.

  3. 3

    Is it really a second entry? Enter it by hand on its form under Accounts.

“That file is larger than 5 MB. Split it into smaller files.”

Where you see it: The Upload file step of Bulk Import.

A file can be up to 5 MB. Nothing has been saved in TallyPrime.

  1. 1

    Remove empty columns and formatting. Or save the sheet as CSV, which is much smaller.

  2. 2

    Still too large? Split the rows into two files, each with the heading row.

  3. 3

    Import each file.

Still stuck? See what to send us so we can help at once.

Common questions

How do I import Excel data into Tally?

Open Accounts, choose Bulk Import, choose what the file holds, upload the .xlsx or .csv file, match the columns, check the rows and press Import.

Can I import sales invoices from Excel to Tally with GST?

Yes. Add CGST account, SGST account or IGST account columns to the file. TallyPrime works out the tax from each item’s GST rate.

Which file formats can I import?

CSV and XLSX files up to 5 MB. One import saves up to 500 entries. For invoices, that is 500 invoices with any number of item rows. Save an older .xls file as .xlsx first.

Is there an Excel template for Tally import?

Yes. After choosing the type, press Download sample file for a CSV with the right headings and example rows.

Will importing the same file twice create duplicate vouchers?

No. An invoice number already in TallyPrime is not added again. Repeated receipts and payments are held back.

Can I bulk import vouchers in Tally without opening Tally?

You can work from any browser, but TallyPrime must be running with the company open on the computer that runs the connector.

Something missing on this page? Tell us and we will fix it.