Skip to main content

Odoo business applications

Odoo Finance and Accounting Built Around Operational Reality

Finance in an ERP is mostly other departments: the order that became an invoice, the receipt that became a payable, the stock move that became a cost. This page shows how we connect those flows in Odoo, where the localisation boundary sits, and what we have actually implemented.

  • Invoicing
  • Payments
  • Expenses
  • Multi-currency
  • Multi-company
  • Valuation

Reviewed by Atul Makwana, CEO & Co-Founder, Heliconia Solutions · Odoo 16 Functional Certification · Odoo Partner · Updated

Proof

Multi-entity, multi-currency in productionFiscal POS integration (Curaçao)Stripe recurring billingManufacturing cost in accountingCommunity + Enterprise

Clients

Businesses that run on what we built

  • Jo Ann's
  • Mevalon Produkte
  • TIMmunity GmbH
  • Aria Jewellers
  • Freiburger Bund
  • Opsio
  • LittleQ

The short answer

What Does an Odoo Accounting Implementation Cover?

It covers the flows that produce financial records, not just the ledger: quote to cash, procure to pay, expense to reimbursement, subscription to renewal, and the stock and production moves that create cost. Odoo posts most entries automatically once those flows are configured properly, which is why finance work in Odoo is mostly operational design, then reconciliation, controls and reporting.

The mistake we see most often is implementing Accounting as a standalone app, then discovering that invoices, stock valuation and payments each tell a different story. If sales, inventory and service are configured properly, accounting largely follows. If they aren't, no amount of ledger configuration fixes it.

We work on both editions and in several countries, so this page is explicit about the boundary: we build the flows and the integrations, and we name the localisations we have actually implemented. Statutory advice stays with your accountant.

The connected flows

Where Financial Records Actually Come From

Four flows produce almost every entry in an Odoo system. Each step names the app that carries it, or the custom work when the standard flow does not fit.

  1. Step 01

    Quote to cash

    Quotation, order, delivery, invoice, payment and reconciliation. The invoice is created from the order or the delivery, so what you bill matches what you shipped.

    • Sales, Accounting
  2. Step 02

    Procure to pay

    Purchase order, receipt, vendor bill matched three ways, payment and reconciliation. Landed costs attached where they belong, so the product cost is real.

    • Purchase, Accounting
  3. Step 03

    Expense to reimbursement

    Employee expenses captured, approved against policy, posted and paid, with the analytic account so the cost lands on the right project or department.

    • Expenses
  4. Step 04

    Subscribe to renew

    Recurring plans, invoices generated on schedule, card payments taken automatically, failed payments and expiry handled. MEP Emart and WaveContact both run this on Stripe.

    • Subscriptions + custom
  5. Step 05

    Operational valuation

    Stock moves and manufacturing orders post their own journal entries, so inventory and work in progress carry a cost the balance sheet recognises.

    • Inventory, Manufacturing
  6. Step 06

    Close and report

    Bank reconciliation, analytic reporting, multi-currency conversion, the trial balance and the reports your controller actually reads, including the ones we build.

    • Accounting + custom reports

The flows above are where the entries come from. If a number looks wrong in accounting, the fix is almost always upstream in one of these five flows.

Grouped by job

What We Build on the Finance Side

Each item is from a system running in production, with the client named.

  • Multi-company and multi-currency

    Separate legal entities on one database, each with its own currency, journals and reporting. Jo Ann's runs four Caribbean island entities with automated journal currency conversion and custom accounting reports.

    • Inter-company
    • Currency journals
    • Consolidated view
  • Fiscal and POS compliance work

    Where a jurisdiction requires certified hardware or formats, we integrate it. Jo Ann's POS is integrated with the Curaçao blackbox fiscal device, in production, with the software side built around it.

    • Fiscal device
    • POS journals
    • Audit trail
  • Recurring billing and collections

    Subscription plans, automated renewals, card payments and dunning. MEP Emart automates Stripe recurring billing, database expiry and plan changes. WaveContact runs subscription billing behind a web and Flutter app.

    • Stripe
    • Renewals
    • Self-service
  • Cost that reflects production

    Valuation, landed costs and manufacturing cost roll-up. Spicy Organic sees manufacturing cost and inventory valuation in accounting, from the same records that run the factory.

    • Valuation
    • Landed cost
    • WIP
  • Payment and banking integrations

    Gateways, remittance and card terminals wired into the ledger rather than reconciled by hand. PayRemit runs live payment processing with collection and accounting reporting on top.

    • Gateways
    • Reconciliation
    • Reporting
  • Controls, access and audit trail

    Approval limits, credit limits, restricted journals and role-based access, so the system enforces the policy. Jo Ann's runs partner credit limits and a dedicated security module across entities.

    • Approvals
    • Credit limits
    • Role access

The honest three columns

Standard, Configuration or Custom Engineering?

Finance is the family where custom code is least often the right answer. This is the order we try things.

Standard, Configuration or Custom Engineering?
RequirementStandard OdooConfiguration or OCACustom engineering (and why)
Chart of accounts and taxesLocalisation packages per countryFiscal positions, tax groups, account mappingAlmost never. If it needs code, question the design first
Invoicing from orders and deliveriesYes, both directionsInvoicing policy per product, down paymentsOnly for document layouts and customer-specific billing rules
Multi-currency and multi-companyYes, with rates and inter-company rulesJournals, rate providers, access per companyPer-entity behaviour, as in Jo Ann's journal currency conversion
Subscriptions and recurring billingEnterprise Subscriptions appPayment provider setup, renewal remindersOn Community, or when provisioning and expiry must follow the payment, as at MEP Emart
Bank feeds and reconciliationEnterprise bank sync, manual import on CommunityReconciliation models and rulesBank or gateway APIs without an Odoo connector
Statutory and fiscal devicesDepends entirely on the countryLocalisation modules where they existCertified-hardware integration, as with the Curaçao POS blackbox

We do not claim global statutory compliance. We name the localisations we have implemented, and where a country needs certified software or a local filing agent, we say so and work with your accountant.

Edition and OCA

Community, Enterprise or OCA for Finance?

Finance is the family where the edition difference is largest, so it deserves a direct comparison.

Community, Enterprise or OCA for Finance?
CapabilityCommunityEnterpriseNotes
Invoicing, bills, payments, journalsYesYesThe core ledger is in both
Full Accounting app (assets, deferred, budgets)Partly, via OCAYesThe most common reason finance teams choose Enterprise
Automated bank statement sync–NoYesCommunity imports statements or uses an integration
SubscriptionsOCA or customYesMEP Emart built the full lifecycle on Community 14
Follow-up and dunning automationOCAYesOCA covers a good part of this
Country localisationsYesYesPublished per country, not per edition

If accounting is the reason you are buying an ERP, Enterprise usually pays for itself here. If accounting is a downstream record of operations that happen elsewhere, Community plus OCA is a serious option, and we have shipped it.

Data and boundaries

What We Migrate, and Where the System Ends

  • Chart of accounts mapped from the old system, with the account owner agreeing every mapping
  • Opening balances at a cut-off date, reconciled to the last closed period before go-live
  • Open receivables and payables as individual documents, so ageing and reconciliation still work
  • Customer, vendor and tax master data cleaned, deduplicated and matched to operational records
  • Historical transactions: usually summarised rather than migrated line by line, with the old system kept read-only
  • The boundary, stated: statutory filing, audit sign-off and local tax advice stay with your accountant

How we run it

The Implementation Sequence

  1. Flow discovery

    We follow one real order, one real bill, one real expense and one real payment end to end, with the people who process them, and note every manual step and spreadsheet.

  2. Design decisions

    Company and currency structure, invoicing policy, analytic model, valuation method, approval limits and who is allowed to post. Written down with the reasoning.

  3. Configuration and build

    Localisation and chart of accounts first, then the operational flows that feed them, then reports. Custom modules only where the table above says so.

  4. Balances and reconciliation

    Opening balances loaded at the cut-off, then reconciled line by line with the outgoing system. Finance signs off before go-live, not after.

  5. Parallel run where it earns its cost

    For a first month-end, or a fiscal-device jurisdiction, running both systems briefly is cheaper than discovering a gap in an audit.

  6. First close together

    We stay close through the first month-end: bank reconciliation, tax report, ageing and the management reports, until your team closes without us.

Evidence

Finance Workflows We Run in Production

Only projects where the financial workflow described above is actually in place.

Finance Workflows We Run in Production
ProjectIndustryOdooKey capabilitiesTechnology
Jo Ann'sRetail & wholesale, duty-freeOdoo 16 EnterpriseJoanns Base · Joanns POS · Joanns POS User Commission · Joanns POS WholesaleOdoo 16 Enterprise · Python · PostgreSQL · OWL / QWeb · POS blackbox middleware
MEP EmartSaaS: AI solutions & digital transformationOdoo 14 CommunityStripe · Odoo Website & customer portal · Email (SMTP)Odoo 14 Community · Python · PostgreSQL
Spicy OrganicOrganic food manufacturing & eCommerceOdoo EnterpriseSpicy Organic Base · Spicy Organic Product Management · Raw Material Management · Manufacturing & BOM ExtensionsOdoo Enterprise · Python · PostgreSQL · OWL / QWeb · Shopify APIs
PayRemitFinTech: digital payments & remittanceOdooAgent Management · Employer Management · Commission Management · Payment History ReportsOdoo · Python · PostgreSQL · Next.js · Flutter
WaveContactSaaS: digital business cardsOdooDigital Business Card Management · Contact Management · Profile Management · Subscription ManagementOdoo · Python · PostgreSQL · GraphQL · Flutter

Read the projects

Three Finance Problems, Three Systems

Four legal entities with four currencies and a fiscal POS device, a SaaS subscription lifecycle on Stripe, and manufacturing cost feeding accounting.

All case studies

Workflow review

Request a Finance Workflow Review

Send us your entity and currency structure, how you invoice, how you pay, and which country rules you are subject to. You get the flows mapped to Odoo, the edition that follows from them, and an honest note on where local expertise is required. No obligation.

  • Quote-to-cash and procure-to-pay mapped to Odoo apps
  • Company, currency and analytic structure recommendation
  • Edition recommendation for your accounting needs, with the reasoning
  • Localisation status: what Odoo ships, what we would build, what stays with your accountant
  • Opening-balance and migration plan with a cut-off date

Request the review

What clients say

In Their Words

Questions

Odoo Finance Questions, Answered Directly

Atul Makwana

CEO & Co-Founder, Heliconia Solutions

Not answered here? Ask Atul directly, the person who reviewed this page, not a sales queue. Odoo 16 Functional Certification.

Ask a question

Is Odoo Accounting good enough to replace our accounting software?

For most small and mid-sized businesses, yes, and the advantage is that the entries come from the operations instead of being re-keyed. The honest caveat is the edition: the full Accounting app with assets, deferred revenue and bank sync is Enterprise. Community covers invoicing, bills, payments and journals, and OCA fills part of the rest.

Compare the editions

Does Odoo handle our country’s tax and statutory requirements?

Odoo publishes localisation packages per country covering the chart of accounts, taxes and common reports, and that covers a lot. Whether it covers everything you are legally required to file depends on your country and your auditor, so we check it per project rather than claiming it in general.

Where a jurisdiction requires certified hardware or formats, that is integration work. We did exactly that for the Curaçao fiscal blackbox on a retail POS.

See the multi-island project

Can Odoo run several companies and currencies on one system?

Yes, and it is one of the better reasons to consolidate onto Odoo. Each entity gets its own journals, currency and reporting, with inter-company rules between them. Jo Ann's runs four island entities this way, with automated journal currency conversion and per-entity reports.

The work is in the design: which data is shared, which is separated, and who can see across the boundary.

How do subscriptions and recurring payments work?

Enterprise has a Subscriptions app. On Community, or where the billing has to drive something else, we build it. MEP Emart automates recurring billing on Stripe with database activation and expiry, plan upgrades and billing-interval changes, all on Community 14.

WaveContact runs subscription billing on Stripe behind a web frontend and a Flutter app.

Read the SaaS billing project

How do we migrate our opening balances?

At an agreed cut-off date, with open receivables and payables loaded as individual documents so ageing still works, and everything else as balances. Historical detail usually stays in the old system, kept read-only.

Finance reconciles the loaded balances against the last closed period and signs off before go-live. That sign-off is the gate, not the calendar.

Will inventory and manufacturing cost show up in accounting automatically?

Yes, once valuation is configured: stock moves and manufacturing orders post their own journal entries, so inventory and work in progress carry a cost the balance sheet recognises. Spicy Organic sees manufacturing cost and inventory valuation in accounting from the same records that run the factory.

The decisions that matter are the valuation method and whether landed costs are included.

The supply-chain side

Can bank transactions and gateway payments reach the ledger without manual work?

Yes, and it's usually the fastest payback in a finance project. Bank transactions come in on a schedule and match themselves against open invoices, so what needs a person each morning is a short exception list rather than a statement download. Opsio run their banking that way inside Odoo 18 Enterprise.

Payment gateways are the same idea from the other direction: the gateway confirms the payment, Odoo records it against the invoice, and the fees and settlements are reconciled rather than assumed.

Swedbank and Odoo

Do you provide accounting or tax advice?

No. We are engineers: we build the flows, the integrations, the controls and the reports, and we make sure the numbers come from the operations correctly. Statutory filing, audit sign-off and local tax positions stay with your accountant, and we work alongside them during implementation.

The rest of the chain

This Department Does Not Run Alone

Odoo earns its place at the hand-offs between departments, not inside any one of them. These are the families this one exchanges data with every day.

Next step

Get Finance Out of the Spreadsheet Layer

Tell us how you invoice, pay and report today, and which entities and currencies are involved. We will map the flows to Odoo, name the edition that follows, and be explicit about what needs local expertise.