ERP migration
Field-level mapping, validation, and rollback between Ostendo and Acumatica. We move data and schema; workflows are rebuilt natively in Acumatica.
Ostendo
Source
Acumatica
Destination
Compatibility
14 of 14
objects map 1:1 between Ostendo and Acumatica.
Complexity
BStandard
Timeline
5–10 business days
Overview
Ostendo is an on-premises operations layer that adds inventory management, job costing, manufacturing, service, and distribution tracking to existing accounting software — it stores items in ITEMMASTER, jobs in JOBMASTER, and supplier data in SUPPLIER with a flat-file export model (CSV or Excel) via its scripting API. Acumatica is a cloud-native ERP with a unified database where inventory items live in INInventoryItem, projects/jobs map to PMProject, and service orders are FSServiceOrder entities accessed through REST endpoints or Import by Scenario screens. FlitStack AI sequences the migration by exporting Ostendo tables in dependency order (Item → Supplier → Warehouse → Jobs → Service Orders → Transactions), resolving Acumatica branch and warehouse references before insert, then loading via Acumatica's bulk import API with the Update GL flag controlled per INPreferences. Workflows, field-level scripts, and OSTENDOCODE-style custom fields do not migrate — we export definitions for your Acumatica developer to rebuild against PMProject and FSServiceOrder custom fields.
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 Ostendo 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.
Ostendo
ITEMMASTER
Acumatica
INInventoryItem
1:1Ostendo's ITEMMASTER is the primary inventory entity — each record maps to Acumatica's INInventoryItem with InventoryID derived from ITEMCODE. Stock item class assignments in Ostendo become Inventory Item Class in Acumatica's INItemClass table, which controls default posting accounts and landed cost settings.
Ostendo
SUPPLIER
Acumatica
Vendor
1:1Ostendo supplier records map to Acumatica's Vendor entity. The primary contact name and email in SUPPLIER become VendorName and email fields in CRVendor. Acumatica requires a VendorID — we derive this from SUPPLIERCODE or generate a sequential value during import to maintain referential integrity with POReceipt records.
Ostendo
CUSTOMER
Acumatica
Customer
1:1Ostendo customer master records map to Acumatica Customer. CUSTOMERCODE becomes CustomerID in Acumatica, with customer class derived from the CUSTTYPE field in Ostendo. Multi-address support in Ostendo (shipping versus billing addresses) maps to Acumatica's Address table with the SameAddress flag set to false when addresses differ.
Ostendo
WAREHOUSES
Acumatica
Warehouse + Branch
1:1Ostendo WAREHOUSES locations become Acumatica Warehouse records linked to a Branch. If Ostendo tracks separate legal-entity warehouses, each becomes a distinct Branch in Acumatica so that financial posting correctly scopes to the correct company entity. The WAREHOUSECODE maps to WarehouseID and the BranchID is resolved from the Acumatica company setup plan.
Ostendo
JOBMASTER
Acumatica
PMProject
1:1Ostendo job costing records (JOBMASTER) map to Acumatica PMProject. Each job header becomes a Project with NonProject flag set to false. Job cost categories in JOBMASTER (labor, materials, subcontractors) become PMProject budget lines with budget amounts entered for each cost code. Project managers and default workers from JOBMASTER map to Project team members in PMEmployeeProject.
Ostendo
SERVICEORDER
Acumatica
FSServiceOrder
1:1Ostendo service orders map directly to Acumatica FSServiceOrder. The service call status (SCHEDULED, INPROGRESS, COMPLETED) maps to FSServiceOrder.status field values. Technician assignments from SERVICEORDER map to StaffID on FSSchedule entries. Route and zone information from Ostendo becomes route or territory assignments in Acumatica's FSSchedule.
Ostendo
QUOTES
Acumatica
CRQuote
1:1Ostendo sales quotes map to Acumatica CRQuote. Quote expiry dates and customer-specific pricing from Ostendo carry over as ValidUntil and manually entered override amounts. Line items with custom pricing from QUOTEDETAIL map as CRQuoteDetails with the same inventory ID and quantity structure.
Ostendo
SALESORDERS
Acumatica
SOOrder
1:1Ostendo sales orders map to Acumatica SOOrder with order type determined by the ORDERTYPE field. Status fields (ENTERED, CREDITCHECKED, ALLOCATED, SHIPPED) translate to Acumatica SOOrder status values. Customer address and shipping warehouse from the order header map to the corresponding Acumatica shipping fields.
Ostendo
PURCHASEORDERS
Acumatica
POOrder
1:1Ostendo purchase orders map to Acumatica POOrder. Supplier references from PURCHASEORDERS link to the Vendor record imported earlier. Line items with ITEMCODE and ordered quantities map to POLine with the same InventoryID and order quantity. The order status in Ostendo becomes POOrder status in Acumatica.
Ostendo
TIMESHEET
Acumatica
PMTimeEntry
1:1Ostendo timesheet entries linked to JOBMASTER map to Acumatica PMTimeEntry with ProjectID pointing to the migrated PMProject. The labour cost rate in Ostendo's TIMESHEET becomes the TimeBillAmount in Acumatica. Multiple timesheet entries per day in Ostendo aggregate to daily PMTimeEntry records.
Ostendo
INVENTORYTRANS
Acumatica
INRegister (Receipt/Issue)
1:1Ostendo inventory transactions (INVENTORYTRANS) for receipts and issues map to Acumatica INDocument records of type INReceipt or INIssue. The transaction date from Ostendo is preserved as the DocDate in Acumatica. For inventory valuation continuity, the unit cost from the transaction is entered as ExtCost on the receipt line.
Ostendo
ATTACHMENTS
Acumatica
NoteDoc (File Storage)
1:1Ostendo file attachments linked to items, jobs, or service orders are exported and re-uploaded to Acumatica as NoteDoc records. Files are stored in Acumatica's file storage with the NoteID linking back to the parent entity (INInventoryItem, PMProject, or FSServiceOrder). Maximum file size per Acumatica's NoteDoc configuration applies.
Ostendo
Custom fields (UDF)
Acumatica
Custom fields (Usr prefix)
1:1Ostendo custom fields stored on ITEMMASTER, JOBMASTER, or SUPPLIER that have no direct Acumatica equivalent become custom fields with Usr-prefixed names on the target DAC (INInventoryItem, PMProject, CRVendor). We surface all custom field definitions in the migration plan so your Acumatica admin creates the Usr fields before data loads.
Ostendo
OSTENDOCODE (custom scripting values)
Acumatica
UsrSourceSystemID
1:1Ostendo's internal ID (OSTENDOCODE or OBJECTID) is preserved as a text custom field (UsrSourceSystemID) on every migrated record for traceability and delta-run de-duplication. This field is never used by Acumatica natively but allows your team to reconcile records against Ostendo exports during the parallel-run window.
| Ostendo | Acumatica | Compatibility | |
|---|---|---|---|
| ITEMMASTER | INInventoryItem1:1 | Fully supported | |
| SUPPLIER | Vendor1:1 | Fully supported | |
| CUSTOMER | Customer1:1 | Fully supported | |
| WAREHOUSES | Warehouse + Branch1:1 | Fully supported | |
| JOBMASTER | PMProject1:1 | Fully supported | |
| SERVICEORDER | FSServiceOrder1:1 | Fully supported | |
| QUOTES | CRQuote1:1 | Fully supported | |
| SALESORDERS | SOOrder1:1 | Fully supported | |
| PURCHASEORDERS | POOrder1:1 | Fully supported | |
| TIMESHEET | PMTimeEntry1:1 | Fully supported | |
| INVENTORYTRANS | INRegister (Receipt/Issue)1:1 | Fully supported | |
| ATTACHMENTS | NoteDoc (File Storage)1:1 | Fully supported | |
| Custom fields (UDF) | Custom fields (Usr prefix)1:1 | Fully supported | |
| OSTENDOCODE (custom scripting values) | UsrSourceSystemID1: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.
Ostendo gotchas
No public REST API for automated data extraction
Concurrent user licensing creates user-count mapping complexity
Custom fields from mobile capture layer require manual mapping
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
Stand up Acumatica branches and warehouse schema before export
Before any Ostendo data is touched, your Acumatica admin (or our team) creates the Branch records, Warehouse records, INItemClass definitions, and Vendor/Customer class structures that will receive Ostendo data. We deliver a schema setup plan based on your WAREHOUSES count, ITEMMASTER class distribution, and multi-entity configuration so the destination is ready before the first import file is generated. The INPreferences Update GL flag is set to OFF at this stage.
Export Ostendo tables in dependency order with throttled batch processing
We export Ostendo tables sequentially: ITEMMASTER and SUPPLIER first (no dependencies), then CUSTOMER, WAREHOUSES, JOBMASTER, SERVICEORDERS, QUOTES, SALESORDERS, PURCHASEORDERS, TIMESHEET, and INVENTORYTRANS last (referential dependencies resolved in order). Each table runs in batches of 500 rows with a 2-second pause to prevent query locks on the live database. Custom field values for ITEMMASTER and JOBMASTER are extracted alongside the main export using GetValueFromStore.
Resolve cross-reference IDs and apply transformation rules
The export files are processed through a mapping layer that resolves Ostendo foreign keys to Acumatica target IDs: SUPPLIERCODE to VendorID, CUSTOMERCODE to CustomerID, ITEMCODE to InventoryID, and WAREHOUSECODE to WarehouseID. Cost category names from JOBMASTER are matched against the pre-created PMCostCode list — unmatched categories are flagged for manual assignment before the budget line import runs. OSTENDOCODE values are preserved as UsrSourceSystemID on every record.
Run a sample import with field-level diff before full data load
A representative slice (typically 200–500 records spanning items, customers, jobs, and a service order) is loaded into Acumatica via the Import by Scenario screen. We generate a field-level diff comparing the source Ostendo record values against the destination Acumatica field values, with particular attention to inventory cost preservation, warehouse assignment, and job budget line totals. You verify the diff before the full run commits.
Execute full migration with delta-pickup and parallel-run validation
The full Ostendo dataset is imported into Acumatica. During the cutover window, your team continues working in Ostendo while we monitor for new or modified records. A delta-pickup (typically 24–48 hours) captures in-flight transactions. We produce a reconciliation report comparing record counts, inventory quantity totals by warehouse, and job budget summaries between the final Ostendo state and Acumatica. One-click rollback is available if reconciliation reveals discrepancies beyond your agreed tolerance threshold.
Platform deep dives
Ostendo
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 Ostendo 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
Ostendo: Not publicly documented.
Data volume sensitivity
Ostendo 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 Ostendo to Acumatica migration scoping. Not seeing yours? Book a call.
Walk through your Ostendo 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 Ostendo
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.