ERP migration

Migrate from Ostendo to Acumatica

Field-level mapping, validation, and rollback between Ostendo and Acumatica. We move data and schema; workflows are rebuilt natively in Acumatica.

Ostendo logo

Ostendo

Source

Acumatica

Destination

Acumatica logo

Compatibility

100%

14 of 14

objects map 1:1 between Ostendo and Acumatica.

Complexity

BStandard

Timeline

5–10 business days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Ostendo logo

Ostendo

What's pushing teams away

  • Support responsiveness varies by scenario, leaving some users without timely help when configuring complex workflows or custom fields.
  • Inconsistent UI behaviour across modules frustrates power users; some panels allow window resizing and others do not, depending on which screen you are in.
  • The platform lacks a well-documented public REST API, making integrations and automated data pipelines difficult to build and maintain.
  • Interface design lags behind modern SaaS standards, which creates a steeper learning curve for users accustomed to contemporary UX patterns.

Choosing

Acumatica logo

Acumatica

What's pulling them in

  • Unlimited user licensing lets companies add staff without per-seat billing shocks, making Acumatica cost-predictable at scale.
  • Flexibility and scalability earn consistent praise — users value a platform that adapts to vertical workflows without forcing a redesign.
  • Real-time visibility across financials, inventory, and projects gives mid-market businesses a consolidated operational view previously available only in enterprise-tier ERPs.
  • Cloud-native architecture with automatic updates removes infrastructure management burden from in-house IT teams.
  • Modular licensing lets companies start with one or two suites (Financials, Distribution) and expand into Manufacturing or CRM incrementally.

Object mapping

How Ostendo objects map to Acumatica

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

maps to

Acumatica

INInventoryItem

1:1
Fully supported

Ostendo'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

maps to

Acumatica

Vendor

1:1
Fully supported

Ostendo 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

maps to

Acumatica

Customer

1:1
Fully supported

Ostendo 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

maps to

Acumatica

Warehouse + Branch

1:1
Fully supported

Ostendo 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

maps to

Acumatica

PMProject

1:1
Fully supported

Ostendo 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

maps to

Acumatica

FSServiceOrder

1:1
Fully supported

Ostendo 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

maps to

Acumatica

CRQuote

1:1
Fully supported

Ostendo 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

maps to

Acumatica

SOOrder

1:1
Fully supported

Ostendo 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

maps to

Acumatica

POOrder

1:1
Fully supported

Ostendo 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

maps to

Acumatica

PMTimeEntry

1:1
Fully supported

Ostendo 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

maps to

Acumatica

INRegister (Receipt/Issue)

1:1
Fully supported

Ostendo 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

maps to

Acumatica

NoteDoc (File Storage)

1:1
Fully supported

Ostendo 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)

maps to

Acumatica

Custom fields (Usr prefix)

1:1
Fully supported

Ostendo 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)

maps to

Acumatica

UsrSourceSystemID

1:1
Fully supported

Ostendo'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.

Gotchas + challenges

What specifically takes care here

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 logo

Ostendo gotchas

High

No public REST API for automated data extraction

Medium

Concurrent user licensing creates user-count mapping complexity

Medium

Custom fields from mobile capture layer require manual mapping

Acumatica logo

Acumatica gotchas

High

API user licenses cap concurrent sessions and request throughput

High

Multi-tenant filtering requires CompanyID awareness

Medium

Custom fields require separate discovery before field mapping

Medium

Notes and attachments use a separate linked table structure

Low

Implementation timelines frequently run 3–9 months end-to-end

Pair-specific challenges

  • Inventory quantity-on-hand requires INPreferences Update GL flag control

    When migrating opening inventory balances from Ostendo, Acumatica requires the Update GL flag in INPreferences to be unchecked before receipt entries are imported — otherwise the inventory receipt posts to the general ledger and can create a double-counting issue if the same quantities were already reflected in the accounting host that Ostendo was layered on. We follow the Acumatica community-recommended sequence: import receipts with Update GL off, print the Inventory Valuation report to verify against the prior-system totals, then enable Update GL so future transactions post correctly. Skipping this step produces a GL不平衡 that is difficult to reconcile after go-live.

  • Multi-entity Ostendo setups require Acumatica tenant scoping before warehouse mapping

    Ostendo customers running multiple legal entities as separate databases or company codes often use the same WAREHOUSES record names across entities with no native linkage between the operations layer and the accounting host's company structure. In Acumatica, each legal entity is a separate Branch under a Tenant, and Inventory is scoped per Branch via BranchID on INInventoryItemWarehouse. If Ostendo's entity split is stored in a custom field rather than the standard WAREHOUSES table, we must identify that discriminator before we can assign the correct BranchID in Acumatica — otherwise items land in the wrong company entity and financial reporting is misstated.

  • Ostendo custom fields on ITEMMASTER require Acumatica Usr field pre-creation

    Ostendo UDF-style custom fields on ITEMMASTER (such as product-specific dimensions, compliance flags, or supplier lead-time overrides) are stored directly in the master table and are accessible via GetValueFromStore in Ostendo's scripting API. Acumatica requires custom fields to be declared as separate schema fields with the Usr prefix before any data can be written to them. If your Ostendo setup has more than 20 custom fields on ITEMMASTER, the Acumatica customization project must be scaffolded before the import runs — otherwise the import skips those columns and your product-compliance data is silently dropped.

  • Job cost categories in JOBMASTER do not map directly to PMProject budget lines

    Ostendo allows arbitrary cost category names on a per-job basis (Labour, Materials, Subcontractor, Equipment, etc.) with no enforced list. Acumatica PMProject budget lines are keyed to CostCodes defined in the PMCostCode table, and the budget structure is per-project-task. If your Ostendo jobs use non-standard cost category names or nest sub-categories, the migration plan must define a CostCode mapping table before budget lines can be created in Acumatica — without this, labour hours and material costs from JOBMASTER land as generic PMTimeEntry records without project budget visibility in PMProject.

  • Ostendo scripting API rate limits apply during export phase

    Ostendo's scripting API GetTableNames and GetValueFromStore functions do not expose a documented rate-limit ceiling, but the underlying database queries run against the same SQL Server or Pervasive instance that handles live users during business hours. We throttle export batches to 500 records per iteration with a 2-second pause between calls to avoid locking conflicts reported in the Ostendo community when heavy scripted queries run against a live ITEMMASTER during peak hours. If your Ostendo instance runs on a dedicated export server, batch size can be increased — the migration plan documents the current server load during the discovery call.

Migration approach

Six steps for a successful Ostendo to Acumatica data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Context on both ends of the pair

Ostendo logo

Ostendo

Source

Strengths

  • Full operations suite covering inventory, manufacturing, job costing, field service, and POS under one licence.
  • Serial number tracking and multi-site stock location support for businesses with complex warehousing needs.
  • Preventive maintenance and service scheduling automation for field service operations.
  • SQL-based Report Writer with access to all database tables and export to Excel or Word.
  • Concurrent user licensing model reduces seat costs for organisations with lower simultaneous usage.

Weaknesses

  • No publicly documented REST API; integrations require scripting or third-party tools.
  • Limited review presence and thin public community data makes independent evaluation difficult.
  • Interface inconsistency between screens can cause usability friction for power users.
  • Mobile app and custom template layer introduces custom fields that require manual mapping during data migration.
Acumatica logo

Acumatica

Destination

Strengths

  • Unlimited named-user licensing eliminates per-seat cost scaling as teams grow.
  • Modular architecture lets companies deploy Financials first and add Distribution, Manufacturing, or CRM incrementally.
  • Cloud-native with automatic updates removes infrastructure patching and version management from IT responsibilities.
  • Flexible customization framework (UDFs, extensions) supports vertical-specific workflows without forking core code.
  • Multi-tenant architecture with CompanyID isolation enables safe data segregation across subsidiaries.

Weaknesses

  • Steep learning curve and complex initial setup create significant onboarding friction.
  • Report Designer is widely cited as unintuitive and difficult to use for non-developers.
  • Feature gaps require customizations or third-party add-ons, adding implementation cost and complexity.
  • Implementation timelines frequently exceed initial estimates, especially for multi-module deployments.
  • API rate limits and concurrent session caps are tied to license tier, creating throughput constraints for bulk data operations.

Complexity grading

How hard is this migration?

Standard ERP migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Ostendo and Acumatica.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Ostendo: Not publicly documented.

  • Data volume sensitivity

    B

    Ostendo doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Ostendo to Acumatica migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Ostendo to Acumatica data migrations

Answers to the questions buyers ask most during Ostendo to Acumatica migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Ostendo to Acumatica migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Ostendo-to-Acumatica migrations complete within 5–10 business days for datasets under 25,000 records. Setups exceeding 200,000 records or those with multi-entity Ostendo configurations (separate legal-entity databases) extend to 3–6 weeks. The longest phase is typically the schema setup in Acumatica — creating branches, warehouses, and custom fields before data can be loaded — not the data movement itself. Preparation tasks such as defining the CostCode mapping table for JOBMASTER cost categories can also influence the overall timeline if manual assignments are required.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Ostendo.
Land in Acumatica, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day