ERP migration
Field-level mapping, validation, and rollback between metasfresh and Microsoft Dynamics 365 Business Central. We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Business Central.
metasfresh
Source
Microsoft Dynamics 365 Business Central
Destination
Compatibility
12 of 14
objects map 1:1 between metasfresh and Microsoft Dynamics 365 Business Central.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from metasfresh to Microsoft Dynamics 365 is a structural migration that requires extracting data from a system with no consumer-facing REST API and loading it into a platform with a well-documented but strict entity and financial-dimension model. metasfresh stores its entire business model in PostgreSQL with flat-file export formats and custom SQL access as the primary extraction paths, while Dynamics 365 requires master data to precede transactional data, financial dimensions to be explicitly mapped, and price-list versions to carry effective-date ranges. We handle the extraction by connecting directly to the metasfresh PostgreSQL instance using read-only credentials, resolving the multi-table BOM dependencies (pp_product_bom, pp_product_bomline, pp_order_bomrecord), and sequencing the migration so that Business Partners and Products land before any Orders or Inivables that reference them. We do not migrate metasfresh workflows, DATEV export configurations, or Docker-based customizations as code; we deliver a written inventory of these for the customer's Dynamics admin to configure post-migration.
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.
Source platform
metasfresh platform overview
Scorecard, SWOT, gotchas, and pricing for metasfresh.
Destination platform
Microsoft Dynamics 365 Business Central platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Business Central.
Data migration guide
The complete Dynamics 365 Business Central migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Dynamics 365 Business Central migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Business Central.
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 Microsoft Dynamics 365 Business Central, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
metasfresh
Business Partners (C_BPartner)
Microsoft Dynamics 365 Business Central
Account / Vendor
1:manymetasfresh C_BPartner stores both customers and vendors in a single table with a Partner Type flag (C_BPartner_Type). We split this into separate Dynamics 365 CustCustomerV3Entity (Customer) and VendVendorV2Entity (Vendor) records. Address records (C_BPartner_Location) map to DirPartyPostalAddressV2Entity and DirPartyPostalAddressV2Entity with address purpose roles. Contact points (C_BPartner_Contact) map to LogisticsPostalAddressContactMechanismV2Entity. The vendor vs customer classification is preserved in a custom field mf_partner_type__c for reconciliation.
metasfresh
Products (M_Product)
Microsoft Dynamics 365 Business Central
Released Product / Item
1:1metasfresh M_Product maps to Dynamics 365 EcoResReleasedProductV2Entity. Product type (Item vs Service vs Resource) maps to ProductType. Product categories (M_Product_Category) map to InventProductCategoryV2Entity and EcoResProductCategoryAssignmentEntity. The metasfresh UPC/EAN from M_Product value maps to EcoResProductIdentifierV2Entity with GTIN type. Stock control status (M_Product_Stock) maps to InventOnHandWarehouseAttributeEntity. We exclude any M_Product records flagged as discontinued if the customer has not activated the corresponding discontinued status in Dynamics 365.
metasfresh
Sales Orders (C_Order with DocStatus SO)
Microsoft Dynamics 365 Business Central
Sales Order
1:1metasfresh sales orders (C_Order header and C_OrderLine) map to SalesOrderHeaderV3Entity and SalesOrderLineV2Entity. The order date (DateOrdered), promised date (DatePromised), and document status map directly. SalesOrderLine includes product number, quantity, unit, and price from C_OrderLine. Header-level charges (C_OrderLine where M_Product_ID is null) map to SalesOrderHeaderChargeEntity. We require the Business Partner and Product records to exist before order lines load because Dynamics 365 enforces referential integrity on CustomerAccountNumber and ItemNumber.
metasfresh
Purchase Orders (C_Order with DocStatus PO)
Microsoft Dynamics 365 Business Central
Purchase Order
1:1metasfresh purchase orders (C_Order with IsSOTrx = N) map to PurchPurchaseOrderHeaderV2Entity and PurchPurchaseOrderLineV2Entity. The vendor account reference, order date, and expected delivery date migrate directly. Line-level delivery date (C_OrderLine DeliveryDate) maps to PurchPurchaseOrderLineV2Entity ExpectedDeliveryDate. Purchase order approval workflow status in metasfresh maps to WorkflowState in Dynamics 365 if the customer has the same approval workflow configured post-migration.
metasfresh
AR Invoices (C_Invoice with DocType AR)
Microsoft Dynamics 365 Business Central
Free Text Invoice / Sales Invoice
1:1metasfresh AR invoices (C_Invoice and C_InvoiceLine) map to either CustFreeTextInvoiceV2Entity or CustInvoiceV3Entity depending on whether the customer uses free-text or posted sales invoices in Dynamics 365. Invoice lines map to CustInvoiceLineV2Entity with LineAmount, TaxCode, and SalesTaxGroup fields populated. The original invoice number from metasfresh C_Invoice DocumentNo maps to ExternalInvoiceNumber for audit trail. We require the Customer account to exist before AR invoice migration because CustAccount is a required lookup.
metasfresh
AP Invoices (C_Invoice with DocType AP)
Microsoft Dynamics 365 Business Central
Vendor Invoice / Purchase Invoice
1:1metasfresh AP invoices map to VendVendorInvoiceV3Entity (header) and VendVendorInvoiceLineV2Entity (line). The vendor account number, invoice number, invoice date, and due date migrate directly. Tax information from C_Tax (tax code and rate) maps to TaxGroupId and TaxCodeId on the invoice line. We verify that the vendor account is provisioned before AP invoice load to satisfy the AccountNum required field.
metasfresh
Pricing Systems (M_PricingSchema)
Microsoft Dynamics 365 Business Central
Price List / Price List Version
1:manymetasfresh pricing is organized into Pricing Schemas containing versioned price lists with effective dates (ValidFrom, ValidTo). We map each M_PricingSchema to a Dynamics 365 PriceDiscTable (price list) and PriceDiscTableVersion (version). The version effective date maps to PriceDiscTableVersion.FromDate. Individual price lines from M_ProductPrice map to PriceDiscAdmTrans or ecobResProductPrice entity depending on whether the destination is Business Central or Finance & Operations. We flag any prices with no ValidTo date as open-ended and document this for the customer's pricing administrator.
metasfresh
BOMs (pp_product_bom, pp_product_bomline)
Microsoft Dynamics 365 Business Central
BOM / Formula
1:1metasfresh bill of materials records (pp_product_bom header and pp_product_bomline components) map to BOMTable and BOMLine in Dynamics 365 SCM. We inspect pp_product_bom for Active status and include only lines where the MRP module (IsActive flag on pp_product_bom) is enabled. Component quantities and scrap percentages from pp_product_bomline map to BOMLine.Qty and BOMLine.BOMLineRouteRelation_Old.ScrapPercent. The finished product reference from pp_product_bom.M_Product_ID maps to BOMTable.ItemId. We flag any BOM with more than 50 components for customer review before migration because large BOMs may require Phantom BOM or versioned BOM strategy in Dynamics 365.
metasfresh
Projects (C_Project)
Microsoft Dynamics 365 Business Central
Project
1:1metasfresh projects (C_Project and C_ProjectLine) map to ProjProjectV2Entity and ProjForecastLineEntity. Project type (WBS, Time and Material, Fixed Price) from C_Project.ProjectType maps to ProjProjectV2Entity.ProjTypeId. Project lines (phases, tasks, and cost categories) from C_ProjectLine map to ProjProjectLineV2Entity with ProjLineType区分. Hourly cost rates from C_ProjectLine map to ProjCostPriceTableEntity for Time and Material billing. We map the owning Business Partner from C_Project.C_BPartner_ID to ProjProjectV2Entity.CustAccount for customer-linked projects.
metasfresh
Bank Accounts (C_BP_BankAccount)
Microsoft Dynamics 365 Business Central
Bank Account
1:1metasfresh bank accounts (C_BP_BankAccount linked to C_BPartner) map to BankAccountTable in Dynamics 365. IBAN, SWIFT/BIC, and bank name from the source record map to BankAccountTable.IBAN, BankAccountTable.SWIFTNo, and BankAccountTable.BankName respectively. The bank account is scoped to the legal entity via BankAccountTable.LegalEntityId. Payment identification methods in metasfresh (e.g., SEPA, ACH) map to BankAccountTable.NumberSequence for payment format configuration.
metasfresh
Payment Terms (C_PaymentTerm)
Microsoft Dynamics 365 Business Central
Payment Terms
1:1metasfresh payment terms (C_PaymentTerm) map to PaymTermTable in Dynamics 365. Fields including NetDays (net due days), GraceDays (grace period), and discount percentages (DiscountDays, DiscountPercent) map directly to PaymTermTable.NetDays, PaymTermTable.GraceDays, PaymTermTable.DiscountPercentage, and PaymTermTable.DiscountValidityDays. We include all C_PaymentTerm records regardless of usage count and flag any terms with atypical day calculations (e.g., month-end + fixed days) for the customer's AP team to verify post-migration.
metasfresh
Tax Categories and Tax Codes (C_Tax, C_TaxCategory)
Microsoft Dynamics 365 Business Central
Tax Code / Tax Group
1:1metasfresh tax configurations (C_Tax with C_TaxCategory assignment) map to TaxCode (TaxTable) and TaxGroup (TaxGroupTable) in Dynamics 365. The tax rate percentage and description from C_Tax map to TaxCode.SalesTaxRate and TaxCode.TaxName. Geographic applicability (C_TaxCountryRegion) maps to TaxCode.CountryRegionId and TaxCode.StateId for multi-jurisdiction tax setups. Effective date ranges from C_Tax.ValidFrom and ValidTo map to TaxCode.FromDate and TaxCode.ToDate. We exclude any tax records marked as inactive in metasfresh.
metasfresh
Custom Fields (AD_Column with custom flag)
Microsoft Dynamics 365 Business Central
Custom Fields
1:1metasfresh custom fields discovered via AD_Column metadata query (ColumnSQL, IsCustomColumn = Y) map to custom attributes on the corresponding Dynamics 365 entity. We inspect AD_Column during discovery to identify all per-table custom fields and include them as additional columns in the PostgreSQL export query. Field data type from AD_Column.AD_Reference_ID maps to the nearest Dynamics 365 field type (string to Text, integer to Int, decimal to Real). Custom field values are appended as additional columns in the import CSV and loaded into the destination custom field after the standard fields are validated.
metasfresh
Attachments and Documents
Microsoft Dynamics 365 Business Central
Not migrated
1:1metasfresh stores archived invoice PDFs and file attachments as byte arrays in the database (AD_Attachment) or as file system references whose paths are not consistently tracked in metadata tables. There is no supported export path for these objects. We flag this explicitly during scoping and exclude attachments from the migration deliverable. The customer receives a written instruction document for manually retrieving attachments via direct PostgreSQL blob extraction or filesystem access if they require them in Dynamics 365 SharePoint or Dataverse document management post-migration.
| metasfresh | Microsoft Dynamics 365 Business Central | Compatibility | |
|---|---|---|---|
| Business Partners (C_BPartner) | Account / Vendor1:many | Fully supported | |
| Products (M_Product) | Released Product / Item1:1 | Fully supported | |
| Sales Orders (C_Order with DocStatus SO) | Sales Order1:1 | Fully supported | |
| Purchase Orders (C_Order with DocStatus PO) | Purchase Order1:1 | Fully supported | |
| AR Invoices (C_Invoice with DocType AR) | Free Text Invoice / Sales Invoice1:1 | Fully supported | |
| AP Invoices (C_Invoice with DocType AP) | Vendor Invoice / Purchase Invoice1:1 | Fully supported | |
| Pricing Systems (M_PricingSchema) | Price List / Price List Version1:many | Fully supported | |
| BOMs (pp_product_bom, pp_product_bomline) | BOM / Formula1:1 | Fully supported | |
| Projects (C_Project) | Project1:1 | Fully supported | |
| Bank Accounts (C_BP_BankAccount) | Bank Account1:1 | Fully supported | |
| Payment Terms (C_PaymentTerm) | Payment Terms1:1 | Fully supported | |
| Tax Categories and Tax Codes (C_Tax, C_TaxCategory) | Tax Code / Tax Group1:1 | Fully supported | |
| Custom Fields (AD_Column with custom flag) | Custom Fields1:1 | Fully supported | |
| Attachments and Documents | Not migrated1:1 | Not 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
Microsoft Dynamics 365 Business Central gotchas
Named-user licensing has no concurrent-use relief
API rate limits throttle large-volume migrations
Historical posted transactions require selective migration scoping
NAV-to-Business Central cloud migration requires partner coordination
Custom fields and AL extensions require separate migration handling
Pair-specific challenges
Migration approach
Discovery and database access verification
We audit the metasfresh PostgreSQL database across all relevant tables: C_BPartner, M_Product, M_Product_Category, C_Order, C_OrderLine, C_Invoice, C_InvoiceLine, C_Project, C_ProjectLine, C_BP_BankAccount, C_PaymentTerm, C_Tax, C_TaxCategory, pp_product_bom, pp_product_bomline, and AD_Column (for custom fields). We verify network connectivity to the PostgreSQL host, obtain read-only credentials, and run a record-count query across each table to size the migration. We also verify whether the MRP module is active by querying the pp_product_bom.IsActive flag and AD_Sequence for module availability. The discovery output is a written data inventory, database schema map, and confirmation of export access.
Destination Dynamics 365 edition and entity selection
We pair the metasfresh discovery with a Dynamics 365 edition decision based on the customer's data complexity. Business Central ($80-$180/user/month) suits SMBs needing standard financials, sales, and purchasing. Dynamics 365 Finance & Operations ($210-$240/user/month per app) is required for multi-entity legal structures, advanced warehouse management, manufacturing BOMs, or more than four financial dimensions. We configure the destination entity set (legal entities, number sequences, fiscal calendars, currency, and tax authority records) before any master data loads. Any gaps between metasfresh's chart of accounts structure and the required D365 legal entity design are documented for the customer's finance team to resolve.
Master data migration sequencing
We run master data migration in strict dependency order: Bank Accounts and Payment Terms first (reference data with no dependencies), then Tax Categories and Tax Codes, then Business Partners (split into Customer and Vendor entities), then Products and Product Categories, then Pricing Schemas and Price List Versions, then BOM structures. Each phase emits a row-count reconciliation report. We use the Dynamics 365 Data Management Framework (DMF) for batch import with entity-specific templates, or KingswaySoft SSIS for complex transformations involving multiple source tables. Any BOM with more than 50 components is flagged for customer review before the BOM entity is committed.
Transactional data migration with referential integrity
Sales Orders, Purchase Orders, AR Invoices, AP Invoices, and Projects follow master data. We require all referenced master records (Customer, Vendor, Product, Project) to be committed and validated before transactional line loading because Dynamics 365 enforces AccountNum and ItemId lookups at line level. We use the DMF import for order headers and line-level load with batch sequencing for orders larger than 500 lines. Financial dimensions on transactional lines are populated from the default financial dimension set on the account or project unless the customer has provided a custom dimension mapping plan. Project lines are loaded after the project header with phase and task assignment resolved from the C_ProjectLine structure.
Custom field and financial dimension resolution
Custom fields discovered via AD_Column are appended to the standard field export and loaded into Dynamics 365 custom attributes on the corresponding entity. Financial dimension mapping (see Gotcha 3) is deferred to a written plan delivered to the customer rather than automated during migration because metasfresh cost-center data requires business classification. We deliver a spreadsheet mapping each metasfresh cost-center value to a D365 financial dimension value with the account structure, legal entity, and posting profile for the customer's finance team to configure in the General Ledger chart of accounts before go-live.
Cutover, validation, and DATEV handoff
We freeze metasfresh writes during cutover, run a final delta migration for any records modified during the migration window, then enable Dynamics 365 as the system of record. We deliver a reconciliation report comparing record counts and spot-checked values between the metasfresh export and the Dynamics 365 destination. We also deliver the DATEV configuration documentation, the financial dimension mapping spreadsheet, the metasfresh automation inventory (workflow equivalents in D365 Flow), and a one-week hypercare window for reconciliation issues. We do not rebuild metasfresh DATEV exports, Docker-based customizations, or metasfresh MRP production schedules inside Dynamics 365; those are separate configuration tasks for the customer's Dynamics partner.
Platform deep dives
metasfresh
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Business Central
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. All 8 core objects map 1:1 between metasfresh and Microsoft Dynamics 365 Business Central.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across metasfresh and Microsoft Dynamics 365 Business Central.
Object compatibility
All 8 core objects map 1:1 between metasfresh and Microsoft Dynamics 365 Business Central.
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 Microsoft Dynamics 365 Business Central migration scoping. Not seeing yours? Book a call.
Walk through your metasfresh to Microsoft Dynamics 365 Business Central 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 Microsoft Dynamics 365 Business Central
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.