Skip to content
TAQNIX
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on TAQNIX

Journal Entries Import from Excel / CSV for Odoo 19 Community documentation

A guide to the import: the file, the options, the check, the entries, the undo and the limits.

Documents version 1.0.0Updated Oct 23, 2026

Start here

In plain words: The month-end closing is in a spreadsheet: payroll, rent, depreciation, accruals, forty entries. Re-typing them is slow and one wrong digit unbalances a ledger. Journal Entries Import loads them in Odoo Community: it groups the rows into entries, checks each entry for balance (and every account, partner, date and period), and creates the good ones as drafts to review or posted, with a history and an undo.
A file that is checked, an import that was posted, and the same screen in Arabic.
A file that is checked, an import that was posted, and the same screen in Arabic.
Tip: An entry with a problem is left out as a whole, with the reason on every one of its rows.

What you get

FeatureWhat it does
Excel and CSV.xlsx, .xls and .csv; headers in English or Arabic, in any column order.
Entries from rowsRows with the same Entry number make one entry (or the same date and reference if there is no Entry column).
Accounts and partnersAccounts by code or name, partners by name or reference (they can be created), analytic accounts by name.
Balance checkAn entry that does not balance, has one row, mixes dates or journals, or falls in a locked period is flagged.
Draft or postedCreate the entries as drafts to review, or post them at once.
DatesISO dates, Excel dates, or day-first / month-first dates like 03/04/2026 (you choose).
History and undoEvery import is kept with its entries; undo deletes them (posted entries are reset to draft first).
TemplateA ready-to-fill Excel template to download.
ArabicEverything is translated and works right to left.

Requirements

ItemDetails
Odoo19.0 (Community or Enterprise)
Apps neededInvoicing (account)
LicenseOPL-1 (Odoo Proprietary License v1.0)

Install

  1. Unzip the package. Inside is taqnix_journal_import.zip; unzip it to get the folder taqnix_journal_import.
  2. Copy the folder into one of the addons_path folders of your Odoo server and restart Odoo.
  3. Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
  4. Remove the “Apps” filter, search Journal Entries Import and press Install.
# or from the command line
./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_journal_import --stop-after-init

Prepare the file

In plain words: A header row and one row per journal line. Four things are required: Date, Account, Debit and Credit.
Column (any of these names)Meaning
DateThe accounting date of the entry. All the rows of an entry must have the same date.
Entry, Number, VoucherGroups the rows into entries. Without it, the date and the reference do.
ReferenceThe reference of the entry. If missing, the entry number is used.
Account, Account codeThe account code or its name (required).
PartnerThe partner name or reference. Optional.
Label, DescriptionThe label of the line.
Debit, CreditThe amounts. A row has one or the other.
Analytic AccountAn analytic account name, 100% on the line. Optional.
JournalThe journal code or name, for the entries that are not in the default journal. Optional.
Tip: Click Download the template on a new import to get a file with the right headers and a balanced example.

Import

In plain words: Open Accounting → Accounting → Transactions → Import entries and click New. Choose the file, the journal and the options, then Check the file.
OptionMeaning
JournalUsed for the entries that have no journal in the file.
Dates are day firstFor 03/04/2026: ticked reads the 3rd of April, unticked reads March 4th. ISO dates are always clear.
Post the entriesUntick to create drafts, to review them first.
Create the missing partnersA partner that does not exist yet is created.
If an entry has an errorImport the valid entries and skip the others, or import nothing.
The check: each entry is ready or in error, with the reason on its rows.
The check: each entry is ready or in error, with the reason on its rows.

Read the check

MessageMeaning
The entry is out of balance by XThe debit and the credit of the entry differ.
An entry needs at least two rowsA single row cannot be an entry.
The rows of an entry must have the same date / journalRows with the same Entry number disagree.
The period is locked until XThe date falls before a lock date of the company.
No account / partner / journal matchesThe value is not in Odoo: correct the file.
Another row of this entry has an errorThe whole entry is skipped, so its other rows show it too.
In plain words: Correct the file and click Check again as many times as you want: nothing is created until you click Import.

Create the entries

In plain words: Import creates one journal entry per valid entry of the file, linked to the import: open the Entries button, or look at the Imported by field on the entry itself.
An import that was posted, with its four entries.
An import that was posted, with its four entries.
An imported entry, with the link to its import.
An imported entry, with the link to its import.

Undo

In plain words: Undo the import deletes its entries: drafts are deleted, posted entries are first reset to draft. If a period is locked or an entry cannot be changed, nothing is deleted and the reason is shown.
The imports.
The imports.

Who can do what

WhoCan
AccountantsImport, check, apply and undo.
Other usersNo access.

Arabic and right to left

The check in an Arabic interface, with the messages in Arabic.
The check in an Arabic interface, with the messages in Arabic.

Limits

LimitDetail
Company currencyThe amounts are in the currency of the company.
TaxesEntries are imported as they are, without tax lines or tax grids.
Opening balances by invoiceReconcile the open items afterwards; the import creates plain journal entries.
One sheet, 10,000 rowsOnly the first sheet is read, up to 10,000 rows per file.

For developers

In plain words: Skip this chapter if you only use the module.
imp = env['taqnix.journal.import'].create({'file': base64.b64encode(csv_bytes), 'filename': 'closing.csv',
    'journal_id': misc.id, 'post': False})
imp.action_check()
imp.action_import()
imp.move_ids
imp.action_undo()

Troubleshooting

ProblemWhat to do
The file needs a Date columnAdd the four required headers: Date, Account, Debit, Credit.
The date is not validUse 2026-03-31 or an Excel date, or choose day first or month first.
The entry is out of balanceAdd up the debit and the credit of the entry number.
The entries could not be removedA period is locked: open it, or reverse the entries by hand.

Updating and removing

Replace the folder with the new version, restart Odoo and run -u taqnix_journal_import. Your imports and the entries they created are kept.

Support

Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.