ERP migration
Field-level mapping, validation, and rollback between inoERP and Acumatica. We move data and schema; workflows are rebuilt natively in Acumatica.
inoERP
Source
Acumatica
Destination
Compatibility
14 of 14
objects map 1:1 between inoERP and Acumatica.
Complexity
BStandard
Timeline
48–72 hours of active migration clock time
Overview
inoERP is an open-source PHP and Go-based ERP that stores data in MySQL and exposes a JavaScript REST API for client-side customization. Its modules mirror SAP and Oracle R12 in naming conventions: General Ledger, Accounts Receivable, Accounts Payable, Inventory, Sales & Distribution, Purchasing, Manufacturing, and Human Resources. Acumatica is a cloud-native ERP that organizes data into Data Access Classes (DACs), uses User-Defined Fields (UDFs) for custom attributes, and accepts imports via its Import by Scenario framework, REST API, or direct SQL injection into staging tables. The migration carries all master data (customers, vendors, inventory items, chart of accounts) and transactional history (open AR/AP, sales orders, purchase orders, GL journal lines) into Acumatica, while custom scripts, inoERP workflows, and any custom database fields require manual recreation in Acumatica Studio. FlitStack AI sequences the load so foreign-key relationships resolve correctly — accounts before sub-ledgers, inventory items before transactions — and captures the delta window for records modified during cutover.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a inoERP object lands in Acumatica, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
inoERP
Customer
Acumatica
Customer
1:1inoERP customers map directly to Acumatica Business Account (Customer class). Each inoERP customer site becomes an Acumatica Customer Location on the same Customer record. Primary email and billing address migrate as the default location; additional sites map to sub-locations with their own shipping addresses and GL delivery terms.
inoERP
Vendor
Acumatica
Vendor
1:1inoERP vendors map to Acumatica Vendors. inoERP vendor sites map to Acumatica Vendor Locations. Payment terms, tax ID, and remittance address carry forward as Vendor attributes. Acumatica's Vendor class supports both AP-only vendors and customers that are also vendors — flagged from inoERP's supplier_type field.
inoERP
Inventory Item
Acumatica
Inventory Item (Non-Stock / Stock Item)
1:1inoERP items classified as Stock map to Acumatica Stock Items with inventory tracking enabled. Non-stock items (services, materials without stock control) map to Non-Stock Items. The item's cost_method (standard, average, FIFO) maps to Acumatica's Cost Method field on the Inventory Item General tab. Default warehouse and last purchase price migrate as item defaults.
inoERP
BOM (Bill of Materials)
Acumatica
Bill of Materials (BOM & Formula)
1:1inoERP BOMs map to Acumatica Bill of Materials records. Each inoERP BOM revision maps to an Acumatica BOM revision with an effective date. Component line quantities, scrap percentages, and material issue/overhead costs carry forward. Acumatica distinguishes between BOMs for manufacturing and formulas for batch processing — routed by inoERP's bom_type field.
inoERP
Work Order
Acumatica
Production Order
1:1Open and historical inoERP work orders migrate as Acumatica Production Orders with their current status preserved (On Hold, In Process, or Completed). The linked BOM revision and production steps become the production order's operation list. Actual material consumption and labor bookings from inoERP are recorded as completed production transactions in Acumatica.
inoERP
GL Account
Acumatica
GL Account
1:1inoERP chart of accounts entries map directly to Acumatica GL Accounts with the same account code, description, type (Asset, Liability, Expense, Income), and active/inactive status. inoERP's account segments map to Acumatica's segmented key structure — each inoERP segment becomes an Account Segment in Acumatica's COA configuration.
inoERP
GL Journal
Acumatica
Journal Transaction
1:1Historical inoERP GL journal lines migrate as Acumatica Journal Transactions. Original document dates become the transaction date; the source module is stored in a custom reference field. Opening balances for active accounts are loaded as a single opening-balance journal entry rather than individual historical rows to avoid inflating record counts.
inoERP
Sales Order
Acumatica
Sales Order
1:1Open inoERP sales orders migrate as Acumatica Sales Orders with their line items, quantities, and pricing. Order status (Draft, Open, Completed, Cancelled) maps to Acumatica's status codes. Historical orders with no remaining fulfillment obligation are summarized as completed records in Acumatica without creating active order rows.
inoERP
Purchase Order
Acumatica
Purchase Order
1:1Open inoERP purchase orders migrate as Acumatica Purchase Orders. Vendor location, line items, quantities, and unit costs carry forward. inoERP PO approval status is recorded as a custom field in Acumatica because Acumatica handles approval workflows through its internal approval map, not as a data attribute — your Acumatica admin configures the approval map to match inoERP's workflow thresholds.
inoERP
Employee
Acumatica
Employee
1:1inoERP employees map to Acumatica Employees with name, position, department, employment status, and hire date. Compensation and payroll data migrates to Acumatica Payroll (if the payroll module is active); otherwise it is exported as a reference file for manual configuration. Leave balances and approval hierarchies become Employee UDFs or are set up manually in Acumatica's HR module.
inoERP
AR Invoice / Credit Memo
Acumatica
AR Invoice / Credit Memo
1:1Open inoERP AR documents (invoices, credit memos, prepayments) migrate as Acumatica AR Documents. The customer location and terms code map from inoERP's payment_term field. Historical paid documents are summarized — full document history is preserved in a reference export file; only open aging items create live Acumatica AR records to avoid inflating document counts.
inoERP
AP Invoice / Credit Memo
Acumatica
AP Invoice / Credit Memo
1:1Open inoERP AP documents migrate as Acumatica AP Documents with vendor, invoice number, date, amount, and terms. Prepayments and credit memos carry their balance-forward amounts. Historical paid AP items are summarized into a reference archive export; open aging items create live Acumatica AP records.
inoERP
Asset Register
Acumatica
Fixed Asset
1:1inoERP asset records (fixed assets with depreciation schedules) map to Acumatica Fixed Assets. Asset class, acquisition date, cost, residual value, and depreciation method carry forward. inoERP accumulated depreciation entries migrate as opening balance entries in Acumatica's asset depreciation history. Asset disposal history and revaluation records are preserved as reference notes on the fixed asset record in Acumatica.
inoERP
Project
Acumatica
Project
1:1inoERP project records migrate as Acumatica Projects with customer association, project status, manager, and budget limits. Line-item budgets map to Acumatica project task budgets. Time and material allocations from inoERP become project transactions in Acumatica's Project Accounting module. Project phases, cost categories, and billing rules are transferred as configuration settings within each project.
| inoERP | Acumatica | Compatibility | |
|---|---|---|---|
| Customer | Customer1:1 | Fully supported | |
| Vendor | Vendor1:1 | Fully supported | |
| Inventory Item | Inventory Item (Non-Stock / Stock Item)1:1 | Fully supported | |
| BOM (Bill of Materials) | Bill of Materials (BOM & Formula)1:1 | Fully supported | |
| Work Order | Production Order1:1 | Fully supported | |
| GL Account | GL Account1:1 | Fully supported | |
| GL Journal | Journal Transaction1:1 | Fully supported | |
| Sales Order | Sales Order1:1 | Fully supported | |
| Purchase Order | Purchase Order1:1 | Fully supported | |
| Employee | Employee1:1 | Fully supported | |
| AR Invoice / Credit Memo | AR Invoice / Credit Memo1:1 | Fully supported | |
| AP Invoice / Credit Memo | AP Invoice / Credit Memo1:1 | Fully supported | |
| Asset Register | Fixed Asset1:1 | Fully supported | |
| Project | Project1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
inoERP gotchas
Architecture version split between PHP and Go/Flutter
OneApp API has no publicly documented rate limits
Closed-order and historical transaction volume drives migration scope
Dynamic pull system recalculates lot sizes at runtime
Self-hosting creates data export dependency on the customer
Acumatica gotchas
API user licenses cap concurrent sessions and request throughput
Multi-tenant filtering requires CompanyID awareness
Custom fields require separate discovery before field mapping
Notes and attachments use a separate linked table structure
Implementation timelines frequently run 3–9 months end-to-end
Pair-specific challenges
Migration approach
Discover inoERP schema and export data via MySQL and REST API
FlitStack connects to the inoERP MySQL database with read-only access and enumerates all entity tables, custom columns, and relationship keys. We also call inoERP's REST API endpoints to verify active document states, workflow statuses, and any data not stored in MySQL directly. The discovery output is a schema map listing every source table, column, and record count — this becomes the basis for the Acumatica import plan. Your team keeps working in inoERP throughout this phase.
Design Acumatica import schema and pre-create UDFs
FlitStack maps inoERP entities to Acumatica DACs and designs the Import by Scenario XML structure for each entity type. We deliver a UDF creation checklist identifying every custom inoERP field that requires a corresponding Acumatica User-Defined Field, including the DAC it belongs to, the field type, and any pick-list value sets. Your Acumatica admin creates these UDFs before migration data is loaded so no values are silently dropped during import.
Migrate GL and chart of accounts first, then sub-ledgers
Acumatica requires the chart of accounts to exist before any journal transactions, customer, vendor, or inventory items can reference account codes. FlitStack sequences the migration: GL Accounts and Branch/Organization structure load first, then Customers and Vendors (which reference account codes for AR and AP), then Inventory Items, then open AR/AP aging, then open Sales and Purchase Orders, then historical work orders and production orders. This foreign-key ordering prevents Acumatica's referential integrity checks from rejecting records.
Run sample migration with field-level diff for validation
A representative slice of data — typically 200–500 records spanning customers, vendors, inventory items, an open sales order, an open purchase order, and a work order — migrates first. FlitStack generates a field-level comparison report showing source value versus destination field for every mapped column. You review the diff to verify UDF mapping, account code resolution, status value translation, and document date preservation before the full migration run commits to Acumatica.
Execute full migration with delta-pickup and rollback readiness
The full migration run loads all remaining records into Acumatica using the validated Import by Scenario framework and REST API calls. A 24–48 hour delta-pickup window captures any inoERP records created or modified during the cutover window. FlitStack maintains an audit log of every operation, and one-click rollback is available if the reconciliation report shows unexpected gaps. After the delta window closes, your team goes live on Acumatica and inoERP is set to read-only.
Platform deep dives
inoERP
Source
Strengths
Weaknesses
Acumatica
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across inoERP and Acumatica.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
inoERP: Not publicly documented.
Data volume sensitivity
inoERP doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during inoERP to Acumatica migration scoping. Not seeing yours? Book a call.
Walk through your inoERP to Acumatica migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave inoERP
Other ways to arrive at Acumatica
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.