Skip to Content
SL Software Solutions Sdn. Bhd.
  • Home
  • AutoCount

    OVERVIEW

    AutoCount Overview
    Why AutoCount
    AutoCount for SMEs

    CORE SOLUTION

    AutoCount Accounting
    AutoCount Retail POS
    AutoCount F&B POS

    CLOUD SOLUTION

    Cloud Accounting
    Cloud PayrollCloud OneSales
    Palm POS

    ADD-ON SOLUTIONS

    AutoCount Module
    AutoCount Plugins
    AutoCount CRM
    AutoCount API
    AutoCount Mobile Apps
    Market Place Integration
  • Odoo

    OVERVIEW

    Odoo Overview
    ERP Implementation

    OPERATIONS​

    Manufacturing/MRP
    Quality Control
    Maintenance
    Project ManagementField Services
    Warehouse Management System
    Booking & Appointment

    RETAIL & COMMERCE ​

    Point of Sales (POS)
    Restaurant POS
    E-commerce
    Website Builder
    Customer Portal
    Membership Portal
    E-learning Portal

     BUSINESS MANAGEMENT​

    Sales & CRM
    Quotation & Sales Order
    Customer Management
    Purchase Management
    Inventory Management
    Accounting & Finance
    Management Dashboard & B1 Report

    MARKETING

    Email Marketing
    Marketing Automation
    Event Management
    Survey/
    Customer Engagement

    PEOPLE & PRODUCTIVITY

    HR & Employee Management
    Leave & Attendance
    Recruitment
    Documents & Approval

    AI & AUTOMATION

    AI Business Assistant
    AI Document Processing
    AI Sales Insights
    AI Inventory Forecasting
    AI Customer Engagement
    AI Reporting & Analytics
    Workflow Automation
  • Industries

    RETAIL

    Grocery StoreHardware Store
    Toy Store
    Furniture Store
    Clothing Store
    Eyewear Store

    FOOD & HOSPITALITY

    RestaurantFast Food
    Beverage Distributor Guest House
    Hotel
    Brewery​

    PROPERTY & CONSTRUCTION

    Real Estate Agency
    Architecture Firm
    Construction
    Property Management
    Gardening

    MANUFACTURING

    Textile
    Metal
    FurnitureFood
    Corporate Gifts

    CONSULTING

    Accounting Firm
    Odoo Partner
    Marketing Agency
    Law Firm
    Educational Services

    OTHERS

    Non-profit Organization
    Environmental Agency
    Billboard Rental
    Photography
    Software Reseller

    HEALTH & FITNESS

    Sports Club Fitness CenterHair Salon
    Pharmacy
    Wellness Practitioners

    TRADES

    Handyman
    IT Hardware & Support
    Solar Energy System
    Shoe Maker
    Cleaning Services
  • Services

    ODOO SERVICE

    Odoo ConsultingOdoo  Implementation Odoo  Customization Odoo  Integration Odoo  Support Odoo  Training

     AUTOCOUNT SERVICES

    AutoCount Consulting
    AutoCount Implementation
    AutoCount Training 
    AutoCount e-Invoice Setup 
    AutoCount POS Setup
    AutoCount Customization

    IMPLEMENTATION SERVICES

    ERP Implementation
    System Configuration
    Data Migration
    Go-Live Support
    User Training
  • Resources

    QUICK ACCESS

    Dealer EnquiryAbout SL SoftwareOdoo Applications User Docs

    LEARN & UPDATES

    Blog Knowledge BaseE-learning Course Event Calendar

     CAREER

    Career OpportunitiesInternship Opportunities
  • ​​​​Conta​​​​​​​​​​​​​​ct Us​
  • Sign in
  • 0
SL Software Solutions Sdn. Bhd.
  • 0
    • Home
    • AutoCount
    • Odoo
    • Industries
    • Services
    • Resources
  • Sign in
  • ​​​​Conta​​​​​​​​​​​​​​ct Us​

First Step into Accounting

Contents

  1. Introduction
  2. Prerequisites
  3. Theory
  4. Localization
  5. Chart of Accounts
  6. Taxes
  7. Journals
  8. Default Values
  9. Fiscal Year
  10. Access Rights
  11. Opening Balance
  12. Data Import
  13. Other Import Operations
  14. Bank Synchronization
  15. Cash Basis Taxes

Introduction

Welcome to this first module of the Masterclass. In this session, we will cover everything about how to start with accounting in Odoo, from the basics to more advanced use cases.

  • The fundamental configurations to initiate the process.
  • Strategies to avoid common mistakes.
  • Best practices for importing your opening financial situation.

The time allocated for this module is approximately 3 hours, during which you will have access to theoretical content and practical exercises.

Prerequisites

This module is designed for users who already have a foundational understanding of Odoo Accounting. Participants should have completed all accounting videos available on the e-learning platform before attending this advanced module.

Useful links:
  • Accounting and Invoicing - eLearning
  • Accounting & Invoicing - Official Documentation

Theory

Useful Link: Get Started - Official Documentation

Localization

Useful Link: Get Started - Official Documentation

When establishing a company, it is vital to choose the correct tax localization. Installing a localization does not mean everything is fully configured. Customers still need to double-check whether all required elements are available and correctly configured.

To check whether a localization exists, connect to a runbot and navigate to Apps > Localization. Search for l10n, the technical name for localization modules.

Installing a localization automatically installs a list of journals, taxes, a chart of accounts, and fiscal positions.

A localization cannot be changed once a journal entry has been posted.

Note: If you cannot choose the localization in the settings, it is likely due to the presence of an existing journal entry, such as a tax entry automatically generated by Odoo. By default, Odoo installs localization based on the country you specified when filling out the form on Odoo.com/trial or in the settings of your company.

Chart of Accounts

Useful link: Chart of Accounts - Official Documentation

Always update accounts first. This saves time because it avoids replacing default values already used by Odoo, such as defaults on contacts or products.

Avoid deleting accounts. Deactivate accounts instead so default accounts remain available if needed, while preventing their use in journal entries.

When creating a new account, replicate settings from the most similar account. The easiest approach is to duplicate the account, then change the code and name.

Useful link: Year-end Closing - Official Documentation

Use caution when enabling Allow Reconciliation. Do not activate this on all accounts, as it can make the bank reconciliation tool unusable. Enable it only where reconciliation is appropriate, such as receivable, payable, or selected clearing accounts.

Account Descriptions and Default Taxes

To make bookkeeping more intuitive, especially for non-accountants, each account can include a Description field.

The description appears as helper text when selecting an account, can be searched in the account field, and helps users understand what the account should be used for.

To reduce accounting errors, the Chart of Accounts from fiscal localization packages can include default taxes linked to accounts.

When creating invoices or bills, Odoo can propose the correct tax based on the selected account. This default tax is not proposed in miscellaneous entries.

In a multi-company environment, the Chart of Accounts configuration also defines company account mapping in the Mapping tab. This topic will be covered later in the Masterclass.

Useful link: Consolidation - Official Documentation

Taxes

Tax configuration is a crucial step before using Odoo Accounting. Starting invoicing without proper tax configuration can significantly affect VAT reporting and may create costly corrections for the customer. Dedicated modules cover indirect taxes and direct taxes in more detail.

Useful link: Taxes - Official Documentation

Journals

Useful link: Journals - Official Documentation

After installing localization, Odoo automatically generates journals of several types, including Sales, Purchase, Bank, Cash, Miscellaneous, and Credit Card.

Different journal types expose different settings tailored to their accounting function. Understanding and configuring these settings correctly is essential for using Odoo Accounting effectively.

  • Common default values include Default Account and Default Tax.

Default Values

Default Account

Default accounts help Odoo automatically suggest accounting entries based on the journal, product, contact, or transaction type.

Default Tax

Default taxes help reduce manual entry errors when creating invoices and bills.

Fiscal Year

The fiscal year in Odoo defines the last day of the accounting year. This is critical because Odoo relies on it when preparing financial statements. Unlike systems that require formal period closing and opening, Odoo simplifies period management through fiscal-year settings.

Access Rights

Useful Link: Access Rights - Official Documentation

When starting an implementation, defining the correct access rights for each user is essential for control, security, and proper management of accounting data.

Accounting and Bank-related Access

To reduce scam risk, Odoo can restrict which users are authorized to validate a bank account for a contact. If a bank account is not validated for a user, SEPA payment creation is restricted, adding an additional security layer.

Understanding Groups

To understand user groups, activate Debug mode, then go to Settings > Users & Companies > Groups. Search for Accounting and open groups such as Invoicing or Bookkeeper.

The Inherited tab shows which base groups the selected group receives access from. For example, a user in the Invoicing group shares access inherited from Internal User.

Access rights are defined per model using Read, Write, Create, and Delete permissions.

A user in the Invoicing group may be able to select a journal when creating an invoice or bill, but may not be allowed to create, rename, or delete journals.

Record rules define which records a user can access and what actions are allowed on those records. This module does not go deeply into development-level details.

The Bookkeeper group inherits permissions from Read-Only and Invoicing & Banks, while also receiving additional rights.

Practical Testing Approach

Because technical access details can be challenging, a practical method is to connect to the database with two users at the same time, each with different access rights, and compare what each user can do.

  • Create a testing database and add a new user with a different email address.
  • In SaaS or Odoo.sh staging databases, emails are not sent. Copy the user invitation link from the user form, create a password, and access the account.
  • Use an incognito window or a different browser to avoid session conflicts.

Opening Balance

Useful Link: Import Opening - Official Video

A recurring implementation question is: What is the optimal time to start using Odoo Accounting? The answer depends on the customer situation and whether they want to switch at fiscal year-end, tax-period-end, or after already using Odoo Invoicing.

Opening Balance at the End of the Year

Many customers prefer to maintain continuity in their accounting software throughout the fiscal year and start Odoo Accounting at the beginning of a new fiscal year. This consolidates all yearly operations in one system.

Note: Even when the start date is January 1, it is often preferable to import opening data on December 31. This supports meaningful period-to-period comparisons, such as Profit and Loss reporting.

Opening Balance at the End of a Tax Period

Customers can switch accounting software at any time. The key decision is how to handle the final VAT report.

  • Option 1: Import only the opening balance before the first day of the next tax period. This is less time-consuming.
  • Option 2: Use Odoo to generate the last VAT report. This requires creating or importing entries such as bills, invoices, bank statements, reconciliations, and miscellaneous entries. It is more time-intensive.

Database with Existing Records - Invoicing App Legacy

Some customers used Odoo Invoicing before deploying full accounting. Because invoices automatically create journal items, the accounting system may contain entries created before proper configuration. These entries may use incorrect accounts or taxes.

The Invoicing Switch Threshold allows cancellation of all entries before a designated date. The user must have Settings access in Administration and is automatically assigned the default Accountant role. This feature is therefore access-right dependent.

Data Import

Option 1 - Import with a Miscellaneous Entry

This method is the easiest because you only need to prepare one template that will be usable to import the customer and supplier details in addition to the generic accounts.

Template: Import with a Miscellaneous Entry - TEMPLATE

Use this method when:

  • You do not use automated stock valuation.
  • You do not use cash basis VAT.
  • You do not need to pay the open amounts through Odoo.
Technical Name Description
idUnique ID of your journal entry.
referenceDescription of your journal entry.
dateDate of your entry.
journal/id_idID of the journal where you import your opening file. Tip: create a dedicated miscellaneous journal for the opening.
line_ids/account_idAccount number.
line_ids/debitDebit.
line_ids/creditCredit.
line_ids/nameInvoice or bill number.
line_ids/partner_id/idPartner ID. Tip: use the external ID when importing to prevent mismatch.
line_ids/date_maturityDue date of the invoice or bill. Useful for aged receivables, aged payables, and payment reminders.
line_ids/amount_currencyAmount in another currency. Positive if debit, negative if credit.
line_ids/currency_id/idForeign currency on the invoice or bill.
If you only use the name of the partner, you risk linking the item to the wrong partner because several partners may have the same name.

Option 2 - Import with Invoices and Bills

This method is useful when you need to generate SEPA files for imported invoices or bills, upload old invoice or bill PDFs, or create reconciliation accounts.

Template: Import Opening with Invoices & Bills - TEMPLATE

  • Create AR Clearing as a Current Assets account with reconciliation enabled.
  • Create AP Clearing as a Current Liabilities account with reconciliation enabled.
  • For automated inventory, create Inventory Clearing as a Current Assets account to avoid duplicate entries and neutralize later impact.
  • Replace receivable, payable, and inventory accounts in the opening balance file with the newly created clearing accounts.
  • For customer invoices, substitute the account on the account move line with AR Clearing. The unit price should include VAT and quantity should be 1.
Technical Name Description
idUnique ID of your invoice.
nameInvoice number.
invoice_dateDate of the invoice.
invoice_date_due_dateDue date of the invoice.
journal_id/idJournal ID to import your invoice.
currency_id/idCurrency of the invoice.
payment_referencePayment reference on the invoice.
invoice_line_ids/nameLabel displayed on the invoice line.
invoice_line_ids/account_idAR clearing account used for this import.
invoice_line_ids/quantityQuantity should be 1.
invoice_line_ids/price_unitAmount including VAT.

For bills, substitute the account on the account move line with AP Clearing. The unit price should include VAT and quantity should be 1.

Option 3 - Import with Matching Numbers / Journal Items

Template: Import Opening with Matching Numbers - TEMPLATE

Importing historical entries is possible but not generally recommended. Users often expect to use past data but rarely rely on it enough to justify the time spent collecting, cleaning, and preparing files.

  • Define a starting date.
  • Prepare the initial situation through miscellaneous entries or invoice and bill imports.
  • Import the historical data.
  • Create a miscellaneous entry transferring the bank account balance to the outstanding account so initial bank operations can be reconciled.

Other Import Operations

Import Stock Count

In Odoo version 19, stock valuation changes significantly. Periodic and Perpetual methods are used, valuation layers are no longer used, inventory moves are reported through the Inventory app, and inventory adjustment entries are computed within a global entry from the valuation report in the Accounting app. Adjustment entries are suggested based on stock moves, keeping Inventory and Accounting aligned.

Everything will be explained and covered in detail in the following module.

Useful Link: Inventory Valuation - Official Documentation

Before Importing Stock Count

  • Review setup and default accounts in Accounting Settings, Inventory Valuation, Product Categories, and Stock Valuation Accounts.
  • Set the default valuation account and valuation journal in Accounting general settings.
  • Set the correct valuation account, Current Asset, and variation account, Expense, in product categories.
  • Update product costs on the product form because Odoo computes valuation from this cost during stock count import.

Create Inventory Adjustments / Import Stock Count

To import your stock count in Odoo, go through the Inventory app under Operations > Physical Inventory.

Technical Name Description
idUnique ID of your stock move.
location_id/idUnique ID of your stock location.
Product_id/idUnique ID of your product.
Inventory_quantityQuantity you have on hand.
Accounting_datePosting date in the accounting.

This process will report an entry in the Inventory Valuation Report to be posted in accounting: debit your Inventory Valuation account and credit your Opening Inventory account, Odoo Technical. You can generate the entry and see the result in your General Ledger.

Import the Opening Balance

You can now import your opening balance using the Odoo technical account as the stock valuation account.

Analyze Your Balance Sheet

Verify that the accounts now hold the correct balance. Odoo Technical should be at zero, and your stock valuation account should report the correct balance. Do not forget to put back the correct loss account on your stock location.

Bank Synchronization

If a miscellaneous operation such as the opening balance is allocated directly to the bank account and the bank will not be synchronized with Odoo, a difference can appear between the General Ledger balance and the bank journal balance.

  • Balance = Last statement balance + sum of all operations from this statement.
  • Last statement balance = last available statement balance for the journal.
  • Payments = all payments created in Odoo in this journal but not yet reconciled.
  • Miscellaneous operations = journal entries created in that bank account.

With Synchronization

If bank synchronization will be used, the bank account can remain in the miscellaneous operation. During the first synchronization, Odoo reports the initial balance in a dedicated statement so the General Ledger Balance and Journal Balance align.

Without Synchronization / Manual Import of Bank Transactions

If bank synchronization will not be used, use an exceptional receipt or suspense account instead of the typical bank account in the opening balance miscellaneous operation.

  • Import the opening balance and allocate the bank amount to a Current Assets suspense account with reconciliation enabled.
  • Use a suspense account that is distinct from the default suspense account in the bank journal, because reconciliation cannot be validated with the default suspense account as counterpart.
  • In the bank journal, create a first bank transaction representing the initial balance and reconcile it with the journal items from the miscellaneous opening entry.

The bank account balance in the general ledger should then align with the bank journal balance.

Note: If a discrepancy persists, it likely indicates another miscellaneous operation attributed to the bank account. To rectify this, follow the same approach: reassign the bank account to a suspense account in the miscellaneous operations, then reconcile this journal item with the corresponding bank transaction.
Note: When bank synchronization is configured, Odoo starts recording transactions from the last transaction date + 1 day. If no journal transaction exists, Odoo retrieves transactions as far back as possible. Limit this by setting Lock Everything in Accounting > Lock Dates.

Cash Basis Taxes

If the customer uses cash basis taxes, extra care is required. Please refer to the official documentation regarding cash basis:

Odoo Cash Basis Taxes Documentation

CABA entries can only be triggered by creating an invoice or bill. A miscellaneous entry cannot generate a CABA entry during reconciliation.

Therefore, prepare a list of all open invoices and bills as of the opening date. Posting these invoices and bills generates accounting entries reflected in the opening balance. To simplify, create a miscellaneous entry to offset this impact.

Steps to Follow

  1. Import the bills and invoices.
  2. Use the taxes with cash basis configuration in this import.
  3. Do not use the clearing account approach described earlier for this cash-basis scenario.
  4. Export the trial balance.
  5. Create a neutralization miscellaneous entry based on the trial balance where debit becomes credit and credit becomes debit.
  6. Import the miscellaneous neutralization entry.
  7. Ensure the trial balance equals zero.
  8. Import the official opening balance from the previous accounting software.
  9. Reconcile payables and receivables from the neutralization miscellaneous entry with the opening balance.
Note: If you have invoices or bills posted in previous years, post this neutralization entry at the end of each year so that it will not affect your current-year earnings.
Note: It is advisable to use accounting data from the opening date to avoid issues where previous-year invoices or bills repeatedly affect current-year earnings.
Useful Links
  • Home
  • About us
  • Products
  • Privacy Policy
About us

SL Software Solutions provides a range of ERP and AutoCount solutions for various industries, including retail, food & hospitality, and manufacturing. Our offerings include AutoCount Accounting, Retail and F&B POS, Cloud Accounting, Payroll, and e-Invoice setup. We also specialize in Odoo consulting, implementation, customization, and integration to help businesses streamline their operations.

In addition, we offer system configuration, data migration, go-live support, and training. Our website features a knowledge base, e-learning courses, and event updates, along with quick access for dealer inquiries and career opportunities. Discover our Odoo and AutoCount solutions to enhance your business efficiency.

Connect with us
  •  Contact us
  • [email protected]
  •  +6014-967 2631 (Mr Low)
Follow us
​ ​ ​ ​© Copyright 2024. All Rights Reserved SL Software Solutions Sdn Bhd (Reg No: 201601010552) | Web Design Malaysia
Powered by Odoo - The #1 Open Source eCommerce