How a team migrates from Acumatica to Odoo without losing open balances
A renewal date, a licensing change or a data residency requirement is usually what starts a move from Acumatica to Odoo, and the migration is a sequenced data and integration project, usually run with an implementation partner. Its effort and risk depend on three things: how many customizations and integrations must be rebuilt, how the Acumatica branches map to Odoo companies and warehouses, and how much transaction history must carry over. Odoo can import data into any business object from Excel (.xlsx) or CSV files, and its documentation recommends External IDs when the source is a third-party application, so each Acumatica record can keep a stable reference to its original key. Before you plan the extract, confirm with Acumatica which export path applies to your version and edition, whether that is a database copy, API extraction or a report-based export. Do not assume a path works until your administrator has tested it on a copy of your own data.
Start with the masters, in this order: chart of accounts, items, units of measure, customers, vendors and warehouses. Decide how each Acumatica branch becomes an Odoo company or operating unit, because that choice drives inventory valuation, intercompany postings and reporting. Load the masters into a test database first, then compare record counts and key totals against the source. Open items come next: open receivables, open payables, open purchase orders, open sales orders and inventory on hand. Balance them to the general ledger as of a single cut-off date, and keep the opening balance entries in a separate, labeled journal so an auditor can trace them. Plan the import in batches, because Odoo's import tool is designed for files of manageable size, and rerun each batch against the External IDs so updates do not create duplicates.
Customizations and integrations deserve their own inventory. For each Acumatica customization, decide whether Odoo already covers the need with standard functions, whether it needs a configured setting or whether it requires a custom module. Custom modules are available on the Odoo Custom plan, and the Odoo pricing page is the place to confirm which plan includes external API access and custom modules before you commit. Time the cutover around the Acumatica renewal notice period: run at least one full parallel close on the test database, and keep the source system read-only only after balances reconcile. Ask your partner for a written list of reconciliation checks, owners and sign-off points before the first production load.
Which Acumatica capabilities map to Odoo, and what needs rework
This table maps the main Acumatica areas to their Odoo equivalents and marks each as clean, needs rework or gap. Use it to build your fit list, then check every Odoo application against your own process list rather than assuming parity. Multi-company, Odoo Studio, external API access and custom modules sit on Odoo's Custom plan, so confirm early which of these you need.
| Acumatica capability | Odoo equivalent | Migration note |
|---|---|---|
| Financials and chart of accounts | Odoo Accounting with chart of accounts templates and fiscal positions | Clean for a single-entity ledger. Rework needed if your Acumatica account structure uses segmented or dimensional keys that must map to Odoo analytic accounts. |
| Branches and companies | Odoo companies (multi-company is a Custom plan feature) | Needs rework. Confirm whether you need several legal entities sharing one database and whether that requires the Custom plan before mapping branches. |
| Items and warehouses | Odoo Inventory products, variants and warehouses with locations | Clean for standard items. Rework needed for item attributes, unit-of-measure conversions and multi-level location structures, which must be designed in Odoo before import. |
| Inventory costing and tracking | Odoo Inventory valuation methods, lots and serial numbers | Needs rework. Confirm that your costing method and lot or serial behavior exist in Odoo as you use them today, and test with a sample of real transactions. |
| Purchasing | Odoo Purchase with vendor pricelists and receipts | Clean for basic purchase orders and receipts. Rework needed for approval rules and landed cost logic, which may need configuration or custom work. |
| Sales orders and invoicing | Odoo Sales with pricelists, delivery orders and invoicing | Clean for standard order-to-cash. Confirm discount, tax and returns handling against your current rules. |
| Manufacturing | Odoo Manufacturing with bills of materials and work orders | Gap to verify. Check routing depth, subcontracting and production costing against your process list before committing. |
| Projects and construction | Odoo Project and timesheets, with project-level accounting through analytic accounts | Gap to verify. Construction-specific features such as job costing, retainage and progress billing may need custom modules or process changes. |
| Customer and vendor masters | Odoo Contacts with customer and vendor records | Clean for core fields. Rework needed to map custom attributes and to preserve external IDs for history and reconciliation. |
| User access and roles | Odoo access rights, record rules and user groups; LDAP authentication is documented | Needs rework. Rebuild roles from your Acumatica access model, since permission structures do not transfer one to one. |
| Customizations and integrations | Odoo Studio, custom modules and external API access (Custom plan) | Gap. Each customization and integration must be re-specified, rebuilt or retired. Confirm plan requirements before design. |
What data and integrations to extract, load and rebuild
Migrating from Acumatica to Odoo breaks into six workstreams, and each one has a different owner and a different end state. Some are one-time loads, while others must keep running while the project is underway. Confirm the extraction path with Acumatica first, because it sets how much of the rest is possible on a fixed timeline.
Confirm the extraction path
Ask Acumatica in writing which database copy or API exports are available for your edition and version, and whether the copy includes the full schema, attachments and customizations. Acumatica's backup is a SQL Server database, so you need a team that can restore it and query it outside the product. Treat the extract as a repeatable process: run a test extract early, then a final extract at cutover. Record which tables or endpoints hold each master and open document so the mapping work has a fixed source.
Masters and External IDs
Customers, vendors, items, warehouses and chart of accounts are one-time loads, but they must be kept in sync while Acumatica remains live. Odoo recommends External IDs when importing from a third-party application, so store each Acumatica key as an External ID from the first load. That lets later delta loads update records instead of duplicating them. Confirm which masters are duplicated across branches and how item units of measure map to Odoo's model before loading anything.
Open documents and balances
Open sales orders, purchase orders, invoices, receipts and inventory balances are the one-time load that drives go-live. Freeze a cutover date, load balances as of that date, and reconcile receivables, payables and stock counts to Acumatica reports before users post. Plan the parallel run: the finance team posts in one system at a time, and any document created in Acumatica after the freeze must be re-keyed or extracted again. Agree the reconciliation sign-off with finance before the first trial load.
Historical transactions and reports
Decide how much history moves into Odoo. Most projects load summary balances and keep several years of detailed transactions in a read-only archive, such as a reporting database or exported files. Historical data is not an inbound requirement for daily operations, so it does not have to share the same import pipeline. Confirm with your auditors and tax advisors which records they must be able to query after the switch, and in what format. Keep the Acumatica copy available for that period, since it is a recurring cost.
Customizations and integrations
Acumatica customizations, e-commerce connectors, banking feeds and shipping integrations do not transfer automatically. Inventory each one, record its data flows and schedules, then decide whether Odoo covers it natively, through an installed module, or through a custom build. Odoo's custom modules and external API access are available on the Custom plan, which affects both cost and build scope. Keep each Acumatica integration running in parallel until its Odoo replacement passes an end-to-end test with real transactions.
Identity mapping and access
Map every Acumatica user, role and branch restriction to an Odoo user, group and company access rule before the first user logs in. If Odoo authentication is connected to your directory, LDAP configuration must be tested with real accounts, including leavers and role changes. Confirm which roles are segregation-of-duties sensitive, such as payment approval and journal posting, and document how each is granted in Odoo. Run access reviews during the parallel period so that inherited Acumatica permissions do not carry over unnoticed.
The migration sequence from inventory to decommission
The sequence moves Acumatica data into Odoo in controlled stages, so each stage produces evidence that the next one can rely on. Every step ends with a named artifact, and the cutover happens only after balances reconcile on a test copy and in a parallel run.
Inventory processes, customizations and integrations
Your team and the implementation partner list every business process running in Acumatica, including branches, approval paths, reports, customization packages, scheduled jobs and each integration with banks, payroll, e-commerce, shipping or BI tools. Each item is tagged as keep, replace with standard Odoo functionality, rebuild as an Odoo module, or retire. The output is a migration inventory workbook signed off by finance, operations and IT owners. The step is complete when every integration has a named owner and a decision.
Extract source data and build the mapping workbook
Extract a copy of the Acumatica data, either through the Acumatica backup copy or through API-based extraction, and confirm that the extract includes master data and open transactions for every company and branch in scope. The team maps Acumatica branches, chart of accounts segments, items, units of measure and warehouses to Odoo companies, accounts, products and warehouses. The output is a mapping workbook with one row per source field and a documented rule for each. The step closes when the finance lead has reviewed the account and tax mapping and signed it.
Pilot load into a neutralized test database
Load masters first, then open documents and opening balances, into a fresh Odoo database. Odoo's import tool accepts Excel and CSV files for any business object and recommends External IDs when data comes from a third-party application, so keep the Acumatica keys as External IDs to allow reloads. Odoo documents database duplication with neutralization for test copies on on-premise installs, so run the pilot on a copy of the target environment that neutralizes outgoing mail and integrations. The output is a load log listing every rejected row and the correction made to the mapping. The step is complete when a full load runs end to end without manual edits.
Run parallel reconciliation until balances agree
Operate Acumatica and the Odoo test environment side by side for a set of closed and open periods, entering the same business transactions in both where the process allows. Reconcile trial balances, subledgers, inventory quantities and valuation, open receivables and payables, and sales order status by branch. Each difference is traced to a mapping rule, a data defect or a process gap, and fixed at its source. The output is a reconciliation report with zero unexplained differences, signed by the controller. The step is complete when the report is accepted and the open differences are documented as approved exceptions.
Freeze the source and execute the cutover
Set a freeze time after which no transactions are entered in Acumatica, run the final incremental extract, load it into production Odoo, and repeat the reconciliation on the frozen figures. Integrations are switched to Odoo endpoints in the same window, and users are granted Odoo access through the authentication method your organization chooses. The output is a signed cutover checklist covering the freeze confirmation, final reconciliation, integration tests and rollback decision point. Confirm with Odoo's documentation how your chosen version and hosting model handle upgrades before production go-live.
Decommission Acumatica access and retain extracts
After a stabilization period agreed by the business, remove user access to Acumatica, disable integration credentials and scheduled jobs, and cancel or reduce the subscription at the end of its term. Retain the final extracts, mapping workbook, reconciliation reports and cutover checklist in a controlled archive for the retention period your auditors and legal team specify. Confirm with Acumatica the data access and deletion terms that apply to your contract before you end the subscription. The output is a decommission record that names who approved each step and where the archive is stored.
Timing the cutover around the Acumatica renewal notice period
Set the cutover date by working backward from the Acumatica renewal notice deadline, not forward from when the Odoo build finishes. The notice period, any suspension terms after a lapsed subscription and the data retention rules that apply afterward are all set in your Acumatica contract, and this page does not state them. Confirm each one with your Acumatica account team and your legal or procurement contact before you pick a date. Ask in writing what happens to your tenant, your backup copy and your API access on each date, because those dates decide how much room you actually have.
Leave room in that window for a full extract, a test load into Odoo and at least one reconciliation cycle in which finance compares trial balances, open receivables and payables, and inventory valuation against the source. Most teams need more than one test load, so plan for a dress rehearsal that runs the complete sequence of extract, transform, load and reconciliation before the final cutover. Keep the Acumatica environment readable until reconciliation signs off, and treat any renewal that falls inside the cutover window as a schedule risk to resolve early.
Choose your long-term Odoo version before you load any data. Odoo states that each major version is supported for three years, followed by two more years to complete an upgrade. Odoo 19.0 standard support runs until September 2028, according to Odoo's support documentation, so a 19.0 go-live leaves a fixed support horizon that you should plan around. Confirm which version your edition and hosting model support, because On-Premise and Odoo.sh use depend on the plan. Loading data into a version you plan to replace within a year creates a second migration you did not budget for.
What drives the cost and duration of an Acumatica to Odoo move
This table lists the factors that change the effort and cost of moving from Acumatica to Odoo, why each one matters, and how to keep it manageable. Read it before requesting a quote, because the same scope items should appear in the written scope and the quote. The main takeaway is that the Odoo edition and hosting choice shape recurring costs, while data volume, customization and testing shape the one-time effort.
| Driver | Why it matters | How to reduce it |
|---|---|---|
| Companies and branches to consolidate | Each legal entity needs its own company record, chart of accounts decisions and intercompany handling, and multi-company support is included only in the Odoo Custom plan. | Confirm the target company structure before extraction. Decide which entities stay separate and which merge, and document the branch-to-warehouse mapping. |
| Customizations and their complexity | Acumatica customizations such as extra fields, screens, workflows or business logic must be rebuilt as Odoo modules, configuration or Studio changes, and each one needs design and testing. | Inventory every customization and classify it as standard configuration, reporting, or custom code. Drop or simplify features the business no longer uses. |
| Integrations and interfaces | Each connected system, such as ecommerce, payroll, banking, tax or warehouse tools, needs a new connector or rebuilt data feed, and external API access is included only in the Odoo Custom plan. | List every integration with its data direction, frequency and owner. Ask the implementer to quote each interface separately. |
| Volume of open documents and history | Open purchase orders, sales orders, invoices, and balances must be loaded with correct links, while years of closed history increase import time and validation work. | Migrate open items and period-end balances in full, and keep older history in an archive or reporting extract instead of loading every transaction. |
| Data quality in items and customers | Duplicate items, inconsistent units of measure, and incomplete customer or vendor records must be cleaned before import, because Odoo imports depend on consistent External IDs and required fields. | Run a data cleansing pass in Acumatica before extraction. Agree on the item and customer master rules and assign an owner for each master data domain. |
| Odoo edition and hosting choice | Community is free to use but lacks the Enterprise features and the upgrade service, while Enterprise and the Custom plan add per-user subscription costs, and on-premise or Odoo.sh hosting requires the Custom plan according to the Odoo pricing page. | Ask for the edition and plan named in the quote, the per-user count, and whether the subscription fee, hosting and support are separate line items. |
| Number of users needing training | Training effort grows with the number of users, roles and approval flows, and each role needs its own access rights and walkthrough. | Group users by role, train super users first, and reuse role-based training materials so new staff can onboard later. |
| Testing cycles | Each test cycle covers extracted data reconciliation, process walkthroughs, and a rehearsal of the cutover, and a failed balance check usually triggers another cycle. | Agree on the number of test cycles and the exit criteria in the written scope. Use an upgraded or duplicated test database with neutralization for test copies. |
| One-time versus recurring costs | One-time costs include extraction, mapping, custom module work, testing and training. Recurring costs include the Odoo subscription if Enterprise, hosting, a support retainer and version upgrades. | Ask the quote to separate one-time implementation fees from recurring subscription, hosting and support fees, with each recurring item stated per year. |
What usually goes wrong and how to prevent it
Most failed Acumatica to Odoo migrations do not fail in the software. They fail in the sequence: balances are loaded before masters are settled, customizations are assumed away, and the old system keeps taking transactions after the data was extracted. Each card below names one failure and the step in the migration sequence that prevents it.
Balances that do not reconcile
Trial balances, open receivables and open payables often differ between Acumatica and Odoo after the first load, usually because of rounding, currency revaluation, or open documents imported without their original dates. Before loading, agree a cutover trial balance per company and per period with finance. After loading, reconcile account by account and document by document, and do not sign off on go-live until the differences are explained and written down. Ask your implementation partner to show this reconciliation as a named step in the plan.
Duplicate masters from missing External IDs
When customers, vendors or items are imported without External IDs, Odoo cannot tell that a record in the new file is the same record already loaded, so the second import creates a copy. Odoo's documentation recommends External IDs when importing from a third-party application. Assign a stable Acumatica key to every master before the first load, and run a duplicate check on partners and products after each import wave.
Customizations assumed to have an Odoo equivalent
Acumatica customizations built with its customization tools, screens, business logic and reports rarely map one to one onto Odoo modules. Inventory each customization with its business owner before design starts, and classify it as standard configuration, a supported add-on, a rewrite or retirement. Confirm the target edition first, since custom modules and external API access depend on the plan Odoo offers for your hosting model.
Integrations still writing to the old system
Payment gateways, shipping tools, EDI feeds and reporting jobs that still point at Acumatica during cutover can create transactions that never reach Odoo. Build a list of every inbound and outbound connection from the API logs and the integration owners, then switch each one in the cutover runbook with a named owner and a rollback step. Keep the old endpoints read-only for a set window so that late messages are caught rather than lost.
Cutover scheduled too close to renewal
Teams often set the go-live date from the business calendar and only then check the Acumatica renewal notice period, which leaves no room to repeat a failed load or extend parallel running. Work backward from the notice deadline to fix the latest acceptable cutover, and keep a dated fallback option. Confirm the notice terms and any data access after expiry in writing with Acumatica before you commit to a date, and plan the final extract against that date.
Users keeping work in Acumatica
After the freeze, sales staff and buyers sometimes keep entering orders or adjustments in Acumatica because a saved report or a familiar screen is still there. This splits the record and makes the final reconciliation unreliable. Publish a dated write freeze, disable user accounts or change permissions on the old system, and log any exceptions with finance approval. Confirm the access rights and read-only roles you plan to use before the freeze date.
How the move differs by company size and starting point
A single legal entity with one warehouse is usually the simplest move, because most of the work is one chart of accounts, one set of items and one set of open documents. Odoo's Community edition may cover the core accounting, sales, purchasing and inventory needs of a small business, but the Enterprise and Custom plan features may matter if you need multi-company support, Odoo Studio for form changes or external API access for integrations. Illustrative example: a single-site wholesaler with a few hundred open purchase orders and a long list of customer price levels.
- Chart of accounts: Map Acumatica account classes to Odoo accounts and taxes once, and confirm how each tax code translates before loading any balance.
- Item master: Clean up unused items and units of measure before import, since this is often the largest share of mapping work.
- Open documents: Load open sales orders, purchase orders and unpaid invoices with their dates and quantities so aging reports match the source.
- Parallel running: A short parallel period for receipts and invoices is usually enough to check that stock and balances agree.
- Customizations: Many custom screens may be replaced by standard Odoo configuration, so list them before assuming any need for custom modules.
Confirm with your team which reports finance relies on at month end, and reconcile those reports in both systems before choosing a cutover date.
A distributor with several branches or warehouses has more inventory locations, more pricing rules and often more intercompany activity. The effort usually concentrates in warehouse structure, stock valuation and transfers between sites. Odoo's inventory and multi-warehouse features are central here, and if branches are separate legal entities, the Custom plan's multi-company support will matter. Illustrative example: a distributor with a main warehouse and three branches, each holding stock that moves between sites weekly.
- Warehouse and location design: Map each Acumatica branch and warehouse to an Odoo warehouse with its own locations, then decide which sites share stock and which do not.
- Multi-company setup: Confirm whether branches are separate companies or one company with several warehouses, since this changes accounting and access rules.
- Stock balances: Count stock per location at the cutover date and load opening quantities and valuations, then check them against the Acumatica snapshot.
- Inter-branch transfers: Test transfers and in-transit stock in a copy of the database, since mistakes here often surface only after go-live.
- Pricing and customer terms: Migrate price lists and customer terms per branch, because a single mapping error can affect many invoices.
Verify that each branch's open transfers and back orders are loaded in the correct state before the first live shipment.
A manufacturer carries bills of materials, routings, work orders and work-in-progress balances, which makes the data set larger and more interdependent than a distributor's. Odoo's Manufacturing application covers these structures, and the decision on whether to stay on Community or move to Enterprise depends on the features and support your production planning requires, which you should confirm with Odoo. Illustrative example: a plant with multi-level bills of materials and several production orders open at cutover.
- Bills of materials: Rebuild or import BOMs with component quantities and scrap rates, then check a sample of finished goods cost against the source.
- Work-in-progress: Decide whether open production orders finish in Acumatica or move into Odoo, because partial work-in-progress balances are hard to reconcile after the fact.
- Routings and work centers: Map work centers and time standards only where production scheduling depends on them, to avoid importing unused detail.
- Costing method: Confirm the costing method and overhead allocation in Odoo match the figures finance reports today.
- Parallel running: A parallel period on a single production line can reveal BOM and costing gaps before the whole plant moves.
Confirm with production and finance which open orders will be closed in Acumatica and which will be recreated in Odoo.
A construction firm tracks cost by job, phase and cost code, with change orders, retainage, subcontractor commitments and percent-complete billing. The move depends mainly on how project and job costing data is structured and whether Odoo's project and accounting modules can represent it without heavy custom work. Odoo's standard features may need configuration or custom development, and that effort should be scoped in writing before the migration plan is fixed. Illustrative example: a contractor with several active jobs, each with committed costs, billed amounts and open change orders.
- Job and cost code structure: Map Acumatica projects, tasks and cost codes to Odoo analytic accounts or project structures, and confirm the hierarchy with the project team.
- Open commitments: Load subcontracts, purchase commitments and change orders with their approval status, since these affect committed cost reports.
- Retainage and billing progress: Recreate retainage and percent-complete balances carefully, and reconcile them to the last billed amount for each job.
- Integrations: Estructure field and estimating integrations early, because they often depend on Acumatica APIs that need replacement.
- Parallel running: Run job cost reports in both systems for one closing period, comparing committed and actual cost by job.
Verify with the project controller that every active job reconciles to the same cost position in both systems before closing the last Acumatica period.
Questions buyers ask before they hire help for an Acumatica to Odoo migration
How much does an Acumatica to Odoo migration cost?
The cost depends on the scope written into the engagement, not on a single rate. The main components are discovery and mapping, data extraction and cleansing, configuration of Odoo, rebuilding customizations and integrations, testing and reconciliation, cutover support, and training. Some of these are one-time project costs, while Odoo licensing (Community is free to use, Enterprise and Custom plans carry per-user or subscription fees) and hosting in your own infrastructure recur. Ask any provider for a quote that separates one-time work from recurring costs, lists each customization and integration by name, states what the client team must supply, and names the environments and test cycles included. DeployOpen does not publish a price list. A quote follows from the written scope.
How long does an Acumatica to Odoo migration take?
Duration is driven by scope and readiness, not by a fixed template. The biggest factors are the number of companies, branches and warehouses being consolidated, how much chart of accounts and item cleanup the data needs, how many customizations and third-party integrations must be rebuilt, how many open documents and balances must be carried over, and how quickly your process owners can sign off on mappings. Timing also depends on your Acumatica renewal notice period, since the cutover date is usually set around it. Ask for a timeline in the written scope with milestones for mapping sign-off, test loads, reconciliation and go-live.
Can our internal team migrate from Acumatica to Odoo ourselves?
A team can do it without outside help, but it needs people with specific skills and protected time. You need someone who understands Acumatica's data model and how your branches, dimensions and customizations were built, someone who can configure Odoo's accounting, inventory and sales modules, and developers who can write and maintain Odoo modules for anything Community or your plan does not cover. Finance and operations leads must own the mapping decisions and reconciliation. Teams often underestimate testing and the cutover weekend, when open documents and balances must be loaded and checked. Assess these skills honestly before deciding, and consider a fixed-scope engagement for the parts you cannot staff.
What do we need to provide for an Acumatica migration?
The engagement depends on the data and decisions only your organization can supply. Provide a full extract from Acumatica, either a database copy or API exports, and a list of every customization, report, and integration that touches the ERP. Name process owners for finance, inventory, sales and purchasing, and make them responsible for signing off on the mapping of chart of accounts, items, warehouses, branches and open balances. Provide access to the target environment in your own infrastructure, test users for each process, and a decision on which historical data to load. Without these inputs, mapping and testing stall.
Can we run Acumatica and Odoo in parallel during the migration?
Yes, a parallel run is common and is best handled with scheduled reconciliation. Both systems can operate for a defined period while you compare trial balances, open receivables and payables, inventory quantities and open orders between them. The main cost is double entry: staff record transactions in both systems, which adds labor and raises the risk of mismatched data. Limit the parallel period to what reconciliation needs, define which system is the book of record for each process, and agree the reconciliation checks in writing before the first load. Confirm your Acumatica contract terms for the period you plan to keep it active.
Is Odoo Community enough to replace Acumatica?
Community may be enough for some organizations, but it has limits that matter for a migration. Odoo's documentation states that the Community edition has no access to the upgrade service, and on-premise use of the upgrade service requires an Enterprise subscription. Odoo's pricing page indicates that multi-company, Odoo Studio, external API access and custom modules are included only in the Custom plan, so an organization with several legal entities or heavy integrations may need it. Standard support for each major version covers the first three years, and security updates are limited to that window, so plan your upgrade path from day one. Confirm the feature list against your process inventory before choosing an edition.
What should we ask about upgrades and support after go-live?
Ask how the Odoo version you choose will be supported, upgraded and tested over its life. Odoo states that each major version receives three years of standard support, followed by two more years to complete the upgrade, and that minor versions arrive roughly every two months. On Odoo Online and Odoo.sh, major upgrades are mandatory every two years, so your operating model must budget for them. Ask the provider who runs upgrades, who tests them against your customizations, how backups are taken and restored, and what support you receive after cutover. Confirm these responsibilities in the written scope.
How DeployOpen works on this
DeployOpen is a Chainscore Labs company that plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own infrastructure. For a move from Acumatica to Odoo, we start with a written scope that fixes what data, branches and integrations are in play before any build work begins.
How we scope
- Written scope lists the Acumatica entities, branches, companies and reports to be migrated into Odoo.
- Inventory of customizations, integrations and API consumers, with a decision on each: rebuild, replace or retire.
- Agreed cutover plan that works backward from your Acumatica renewal notice date and confirmed export access.
How we build
- Mapping workbook matching Acumatica branches, chart of accounts, items and warehouses to Odoo companies and records.
- Import runs in a test Odoo database using External IDs, with balance and open document reconciliation after each load.
- Odoo customizations and integrations built on your own infrastructure, with security testing before production use.
How we hand over
- Documentation of the mapping, import procedures, reconciliation results and custom module decisions.
- Runbooks for backups, restores and Odoo version upgrades, including test upgrades before production.
- Handover sessions with finance, operations and IT owners, with sign-off recorded against the agreed scope.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer after cutover.
- Support scope is agreed in writing, including which Odoo editions and hosting models your team has licensed.
- Confirm with Odoo which edition, hosting option and support window applies to your version before go-live.

