ERP migration
Field-level mapping, validation, and rollback between metasfresh and Acumatica. We move data and schema; workflows are rebuilt natively in Acumatica.
metasfresh
Source
Acumatica
Destination
Compatibility
11 of 12
objects map 1:1 between metasfresh and Acumatica.
Complexity
BStandard
Timeline
5–10 business days
Overview
metasfresh stores ERP data in a PostgreSQL-backed Java application with a flat object model inherited from ADempiere — Business Partners carry both customer and vendor flags, Products use a single inventory schema, and Orders/Invoices link through document type and warehouse contexts. Acumatica separates Customers and Vendors into distinct entity classes, uses industry-specific InventoryID schemas, and ties Financial Management transactions to Branch and Sub-account structures that metasfresh does not expose natively. We extract metasfresh records via direct PostgreSQL query or REST API endpoints, transform Business Partner records into Acumatica Customers or Vendors based on the BP classification flag, map Product categories to Acumatica warehouse and inventory schemas, and load Orders and Invoices with proper TaxZone and PaymentTerm references. Workflow definitions, document printing layouts, and DATEV export configurations do not migrate — those are rebuilt using Acumatica's customization project editor and report designer after the data layer is live. The migration runs against Acumatica's REST API with batch commit and delta-pickup for in-flight documents created during the cutover window.
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 metasfresh 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.
metasfresh
C_BPartner (Business Partner)
Acumatica
Customer (CR.303000) / Vendor (AP.202000)
1:manymetasfresh C_BPartner records are split into Acumatica Customer or Vendor records based on the IsCustomer and IsVendor boolean flags. Records where both flags are true generate both a Customer and a Vendor in Acumatica with separate entity IDs. The C_BPartner_Location addresses map to CustomerAddresses or VendorAddresses; C_BPartner_Contact entries map to Contact records linked by the entity's ContactID.
metasfresh
C_BPartner_Contact
Acumatica
Contact (CR.302000)
1:1Contact records extracted from C_BPartner_Contact are loaded into Acumatica Contacts under the parent Customer or Vendor. The contact's IsPrimaryBilling and IsPrimaryShipping flags map to the corresponding Acumatica address default settings. Phone, email, and job title fields translate directly to the Contact fields with matching names.
metasfresh
M_Product
Acumatica
InventoryItem (IN.202000) / Non-Stock Item / Service Item
1:1metasfresh M_Product records are classified by ProductType — 'Item' maps to Stock InventoryItem in Acumatica, 'Service' maps to ServiceItem, and 'Resource' maps to Non-Stock Item. The C_UOM reference from metasfresh translates to the Acumatica's default UOM class for the item type. Product categories (M_Product_Category) map to Acumatica Product Categories (IN.205000).
metasfresh
M_Product_PO
Acumatica
VendorInventoryItem (AP.202000 tab)
1:1Vendor-specific product data stored in metasfresh's M_Product_PO (purchase orders from vendors) is mapped to the VendorInventoryItem sub-tab on the Acumatica Vendor screen. This preserves vendor-specific part numbers, lead times, and cost prices linked to the vendor relationship. Additionally, any vendor-specific pricing tiers or volume discounts present in the metasfresh M_Product_PO records are transferred to the VendorPriceScheme sub-tab in Acumatica, maintaining the original terms for each vendor-item combination.
metasfresh
M_Warehouse
Acumatica
Warehouse (IN.204000) + Site
1:1metasfresh warehouses map 1:1 to Acumatica Warehouses. The warehouse's IsActive flag controls whether the Site is available for inventory transactions in Acumatica. Each metasfresh warehouse location (M_Locator) maps to a Bin within the corresponding Acumatica Warehouse. If the metasfresh warehouse is inactive, the Acumatica Site is disabled to block transactions. Bin-level mapping retains zone and aisle information from M_Locator, preserving precise stock placement.
metasfresh
C_Order (Sales Order)
Acumatica
SalesOrder (SO.301000)
1:1metasfresh C_Order records become Acumatica Sales Orders. The document's DocStatus maps to Acumatica's order status (On Hold, Pending, Completed, Cancelled). The C_BPartner reference resolves to the CustomerID; order lines map to SOLine with InventoryID, UOM, quantity, and site references. Payment terms from C_Order are looked up by PaymentTermCD.
metasfresh
C_Invoice (AR Invoice)
Acumatica
ARInvoice (AR.301000)
1:1metasfresh AR Invoices (C_Invoice with IsSoTrx='Y') load as Acumatica AR Invoices. The DocumentDate, DueDate, and TaxDate preserve the original metasfresh values. Line items carry the InventoryID, quantity, and tax category references. The C_BPartner reference maps to CustomerID. Credit card and cash payments link via the Payments tab.
metasfresh
C_Invoice (AP Invoice)
Acumatica
APInvoice (AP.301000)
1:1metasfresh AP Invoices (C_Invoice with IsSoTrx='N') load as Acumatica AP Invoices. Vendor references resolve to the VendorID in Acumatica. Tax amounts from metasfresh's tax calculations are reproduced using Acumatica's TaxZone configuration. GL Account lines are populated from metasfresh's posting configuration but require Acumatica branch and sub-account mapping.
metasfresh
C_Payment
Acumatica
Payment (AR.302000 / AP.302000)
1:1metasfresh payments are split by payment direction — customer payments load as Acumatica Customer Payments (AR.302000) applied to the corresponding AR Invoice; vendor payments load as Acumatica Payments (AP.302000). The PayAccountID is mapped from metasfresh's C_BankAccount. Cash discount and write-off amounts are preserved on the payment document.
metasfresh
C_BankStatement
Acumatica
CashFlow (CA.301000)
1:1metasfresh bank statement lines map to Acumatica Cash Flow entries under the CA.301000 screen. The statement date and statement balance map to the cash account's balance date. Matched payments and invoices are linked by their original metasfresh DocumentNo as a reference string.
metasfresh
C_Project
Acumatica
Project (PM.301000)
1:1metasfresh project records (C_Project) map to Acumatica Projects with ProjectID, Description, and status fields preserved. The DefaultProjectAccountID maps to the default Revenue and Cost GL accounts. Project tasks from metasfresh map to PMTask records within the parent Project. Custom fields from C_Project are copied to the Acumatica Project custom fields, preserving data linked by SourceSystem_ID__c. Task budgets and allocations map to PMTask cost codes.
metasfresh
AD_Attachment
Acumatica
Files (SM.202010)
1:1metasfresh document attachments stored in the database are exported as binary files and re-uploaded to Acumatica Files. The file is linked to the corresponding entity (Customer, Vendor, Invoice, Order) using the NoteID reference. File size limits of Acumatica's attachment storage are enforced during the upload phase.
| metasfresh | Acumatica | Compatibility | |
|---|---|---|---|
| C_BPartner (Business Partner) | Customer (CR.303000) / Vendor (AP.202000)1:many | Fully supported | |
| C_BPartner_Contact | Contact (CR.302000)1:1 | Fully supported | |
| M_Product | InventoryItem (IN.202000) / Non-Stock Item / Service Item1:1 | Fully supported | |
| M_Product_PO | VendorInventoryItem (AP.202000 tab)1:1 | Fully supported | |
| M_Warehouse | Warehouse (IN.204000) + Site1:1 | Fully supported | |
| C_Order (Sales Order) | SalesOrder (SO.301000)1:1 | Fully supported | |
| C_Invoice (AR Invoice) | ARInvoice (AR.301000)1:1 | Fully supported | |
| C_Invoice (AP Invoice) | APInvoice (AP.301000)1:1 | Fully supported | |
| C_Payment | Payment (AR.302000 / AP.302000)1:1 | Fully supported | |
| C_BankStatement | CashFlow (CA.301000)1:1 | Fully supported | |
| C_Project | Project (PM.301000)1:1 | Fully supported | |
| AD_Attachment | Files (SM.202010)1: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.
metasfresh gotchas
No well-documented public REST API for data migration
Attachment and archived document extraction is unreliable
BOM and manufacturing data requires deep schema knowledge
Custom fields discovered at runtime, not import time
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
Discovery and schema audit
We connect to the metasfresh PostgreSQL database and the target Acumatica tenant to inventory record counts, custom column definitions, and current posting configurations. The metasfresh discovery extracts the full AD_Table and AD_Column metadata to identify any custom extensions. We produce an Entity Inventory Report listing every C_BPartner, M_Product, C_Order, C_Invoice, and C_Payment record, plus any C_Project, M_Warehouse, or custom table records. Simultaneously, we review the Acumatica configuration: Branch list, Sub-account chart, TaxZone setup, UOM classes, and Customer and Vendor account classes. The combined report drives the field mapping specification and identifies any pre-migration Acumatica configuration work (Branch creation, Sub-account segments, TaxZone rules) that must be completed before the data load.
Build and validate the Acumatica configuration
Before any data is loaded, the Acumatica administrator (or our team with partner credentials) configures Branches, Sub-account segments, TaxZones, PaymentTerms, Customer and Vendor account classes, and Inventory item classes. We deliver a Configuration Checklist based on the discovery output — for example, listing every metasfresh AD_Org that needs a corresponding Acumatica Branch, or every metasfresh tax jurisdiction that needs an Acumatica TaxZone entry. This step runs in parallel with the mapping specification build. Configuration is signed off by the finance and IT stakeholders before the migration scripts are written, ensuring that the target schema is ready to accept the data without constraint violations at load time.
Sample migration with field-level diff
A representative slice of records — typically 200–500 Business Partners, 500–1,000 Products, and 100–300 documents — is extracted from metasfresh and loaded into the Acumatica sandbox environment. We generate a field-level diff comparing the source metasfresh record values against the destination Acumatica field values, with every field mismatch annotated by mapping rule. The diff is reviewed with the client to verify that Branch assignments are correct, TaxZone mappings produce expected tax amounts, and document numbering sequences align with the Acumatica numbering setup. Approval of the sample diff is the gate for the full migration run. Any field mapping corrections are applied to the migration scripts before the full load begins.
Full data migration with delta-pickup
The full extraction and load runs against the production Acumatica environment. Business Partners are loaded first (as Customers and Vendors), followed by Products, then Orders and Invoices. Payments and bank statements are loaded after the related invoices to preserve application references. A delta-pickup window — typically 24–48 hours after the initial load — captures any records created or modified in metasfresh during the cutover period. Each record is tagged with the original metasfresh ID (SourceSystem_ID__c) for reconciliation traceability. The audit log captures every create, update, and link operation. If a batch fails validation (for example, due to a missing Branch combination), the batch is held and the client is notified with the specific constraint violation before the next batch begins.
Reconciliation and rollback validation
After the delta-pickup window closes, we run a reconciliation report comparing metasfresh record counts and aggregate totals (e.g., total AR balance, total AP balance, open order count) against the Acumatica data. The report is delivered to the finance team for sign-off. If the reconciliation reveals discrepancies beyond an agreed tolerance (typically ±0.1% on monetary totals), the one-click rollback reverts the Acumatica environment to its pre-migration snapshot, the root cause is identified, the migration scripts are corrected, and the run is repeated. After sign-off, the metasfresh system is placed in read-only mode and the Acumatica environment is promoted to production. We provide the DATEV reference export and the custom field data file as post-migration deliverables for the Acumatica partner to use during localization configuration and workflow rebuild.
Platform deep dives
metasfresh
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 metasfresh 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
metasfresh: Not publicly documented.
Data volume sensitivity
metasfresh 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 metasfresh to Acumatica migration scoping. Not seeing yours? Book a call.
Walk through your metasfresh 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 metasfresh
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.