ERP migration

Migrate from metasfresh to Microsoft Dynamics 365 Business Central

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 logo

metasfresh

Source

Microsoft Dynamics 365 Business Central

Destination

Microsoft Dynamics 365 Business Central logo

Compatibility

86%

12 of 14

objects map 1:1 between metasfresh and Microsoft Dynamics 365 Business Central.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

metasfresh logo

metasfresh

What's pushing teams away

  • Steep learning curve when configuring the system for industries outside its default food and beverage workflows, requiring significant consultant time.
  • Installation and build times can be slow, with users reporting the application sometimes hanging during Docker image builds.
  • Not a turnkey solution — companies without technical staff or ERP experience may struggle to configure and maintain metasfresh without external help.
  • Self-hosting responsibility means no vendor-managed updates, backups, or SLA, which some companies prefer to outsource to a SaaS provider.

Choosing

Microsoft Dynamics 365 Business Central logo

Microsoft Dynamics 365 Business Central

What's pulling them in

  • Deep integration with Microsoft 365, Power BI, and Power Platform means organizations already on the Microsoft stack get identity, reporting, and workflow continuity out of the box.
  • Unified financials, sales, service, and operations replace multiple disconnected systems — users report that data entered once flows through purchase orders, invoicing, and approvals without manual re-entry.
  • Copilot AI features (predictive analytics, embedded business intelligence) are included in both Essentials and Premium tiers, addressing demand for AI without separate module purchases.
  • Named-user licensing with no concurrent model appeals to organizations that want predictable per-seat costs even if some users access the system infrequently.
  • Strong partner ecosystem with certified NAV-to-Business Central migration specialists gives mid-market companies confidence the cutover from legacy Navision can be executed reliably.

Object mapping

How metasfresh objects map to Microsoft Dynamics 365 Business Central

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)

maps to

Microsoft Dynamics 365 Business Central

Account / Vendor

1:many
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Released Product / Item

1:1
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Sales Order

1:1
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Purchase Order

1:1
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Free Text Invoice / Sales Invoice

1:1
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Vendor Invoice / Purchase Invoice

1:1
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Price List / Price List Version

1:many
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

BOM / Formula

1:1
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Project

1:1
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Bank Account

1:1
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Payment Terms

1:1
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Tax Code / Tax Group

1:1
Fully supported

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

maps to

Microsoft Dynamics 365 Business Central

Custom Fields

1:1
Fully supported

metasfresh 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

maps to

Microsoft Dynamics 365 Business Central

Not migrated

1:1
Not supported

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

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.

metasfresh logo

metasfresh gotchas

High

No well-documented public REST API for data migration

High

Attachment and archived document extraction is unreliable

Medium

BOM and manufacturing data requires deep schema knowledge

Medium

Custom fields discovered at runtime, not import time

Microsoft Dynamics 365 Business Central logo

Microsoft Dynamics 365 Business Central gotchas

High

Named-user licensing has no concurrent-use relief

High

API rate limits throttle large-volume migrations

Medium

Historical posted transactions require selective migration scoping

Medium

NAV-to-Business Central cloud migration requires partner coordination

Low

Custom fields and AL extensions require separate migration handling

Pair-specific challenges

  • metasfresh has no consumer-facing REST API for data extraction

    metasfresh does not publish a documented REST API with clear endpoint documentation for programmatic data extraction. Migrations from metasfresh must use its flat-file import/export format, direct PostgreSQL queries against the C_BPartner, M_Product, C_Order, C_Invoice, and pp_product_bom tables, or custom Talend-style ETL jobs. We handle this by connecting directly to the metasfresh PostgreSQL instance using read-only credentials and constructing SELECT queries against the underlying tables. This requires the customer to provide database host, port, credentials, and network access to the PostgreSQL instance. Without this access, extraction is limited to metasfresh's built-in XLS export which cannot reliably capture multi-table relationships like BOM lines or order line taxes.

  • BOM and manufacturing data requires MRP module status verification

    metasfresh stores bill of materials across pp_product_bom (header), pp_product_bomline (components), and pp_order_bomrecord (production order BOMs) with dependencies on the MRP module that may not be active in all installations. Records in pp_product_bom with IsActive = N or where the MRP module is disabled are excluded from migration because they represent archived or draft BOMs that have no production relevance. We inspect the pp_product_bom table structure during discovery and include BOM lines only when the PP tables are populated, the MRP module is confirmed enabled, and the finished product exists in M_Product. Manufacturing orders (pp_mrp_production records) are out of scope for standard migration because production scheduling is a destination-side configuration.

  • Financial dimension mapping has no metasfresh equivalent to resolve

    Microsoft Dynamics 365 F&SCM enforces up to 13 financial dimensions per legal entity (defaulting to four: BusinessUnit, Department, CostCenter, Project) with ledger rules that restrict which dimensions can be used per journal. metasfresh has no structured financial dimension concept; cost centers and profit centers are stored as free-text or partner-level attributes rather than as a dimensional chart. Organizations that have grown beyond simple cost-center tracking find that their metasfresh data cannot be retroactively classified into financial dimensions without manual business judgment. We flag this gap during scoping, extract the cost-center and profit-center values from metasfresh as unstructured attributes, and deliver a written financial dimension mapping plan for the customer's finance team to classify and configure in Dynamics 365 before master data migration.

  • DATEV export does not migrate and has no native D365 equivalent

    metasfresh includes native DATEV export functionality that DACH-region companies use to hand off accounting data to tax advisors without third-party tools. Microsoft Dynamics 365 does not include a built-in DATEV export; companies requiring DATEV-compliant accounting output must install a third-party connector (such as Datel DATEV or CKS Solutions) or build a custom export mapping from the D365 ledger. We do not migrate the DATEV configuration or rebuild it inside Dynamics 365. We document the metasfresh DATEV export settings (account mappings, export format version, and posting date rules) in the migration handoff and recommend a DATEV connector vendor for the customer to evaluate post-migration.

Migration approach

Six steps for a successful metasfresh to Microsoft Dynamics 365 Business Central data migration

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

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

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

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

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

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

Context on both ends of the pair

metasfresh logo

metasfresh

Source

Strengths

  • Completely free and open-source under GPLv2/GPLv3 with no per-user or per-company license fees.
  • Docker and Kubernetes deployment flexibility gives full infrastructure control and data sovereignty.
  • DATEV accounting export built in serves the DACH region's tax advisor workflow natively.
  • 60,000+ commits and active development since 2004 indicate long-term project stability.
  • Source code access enables deep customization that commercial ERPs charge premium tiers for.

Weaknesses

  • No vendor-managed cloud hosting option with SLA — self-hosting and maintenance are entirely the customer's responsibility.
  • Public REST API is not well-documented; migrations rely on flat-file exports, SQL access, or metasfresh's internal migration tooling.
  • Installation and build processes can be slow and unreliable, especially in Docker environments without pre-configured resources.
  • Default workflows favor food and beverage industry, requiring significant reconfiguration for other verticals.
Microsoft Dynamics 365 Business Central logo

Microsoft Dynamics 365 Business Central

Destination

Strengths

  • Tight integration with Microsoft 365 (Outlook, Teams, SharePoint) for users already in the Microsoft ecosystem.
  • Includes Copilot AI, predictive analytics, and embedded Power BI dashboards at no additional cost in both license tiers.
  • Supports multiple companies within a single tenant for holding-company or multi-entity organizational structures.
  • Open REST API v2.0 with OAuth 2.0 authentication and data entity abstraction layer for developer-friendly integrations.
  • Strong partner ecosystem specializing in NAV-to-Business Central migrations provides implementation confidence for legacy upgrades.

Weaknesses

  • Named-user licensing model means every active user account requires a paid license — no concurrent access model to reduce costs for occasional users.
  • SaaS-only deployment means no on-premises option; organizations requiring full data residency control may not have viable alternatives within Microsoft's stack.
  • Manufacturing module (Production Orders, routing, work centers) is only available on Premium tier, pushing cost-sensitive manufacturers to higher-priced plans.
  • Customization and extension development requires AL language knowledge and developer licenses, limiting what power users can do without a partner engagement.
  • Global pricing increases effective October 2024 and again October 2025 after five years of stable pricing, creating budget uncertainty for existing customers.

Complexity grading

How hard is this migration?

Standard ERP migration. All 8 core objects map 1:1 between metasfresh and Microsoft Dynamics 365 Business Central.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across metasfresh and Microsoft Dynamics 365 Business Central.

  • Object compatibility

    A

    All 8 core objects map 1:1 between metasfresh and Microsoft Dynamics 365 Business Central.

  • 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

    metasfresh: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your metasfresh to Microsoft Dynamics 365 Business Central 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 metasfresh to Microsoft Dynamics 365 Business Central data migrations

Answers to the questions buyers ask most during metasfresh to Microsoft Dynamics 365 Business Central migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most metasfresh to Dynamics 365 migrations land between four and eight weeks for straightforward migrations under 10,000 Business Partners, 5,000 Products, and no multi-level BOMs. Migrations with complex bill of materials (more than 50 components per finished product), active MRP production records, historical transactional data spanning multiple years, or more than four financial dimensions requiring classification move to eight to sixteen weeks because of the PostgreSQL extraction design, BOM parent-component resolution, and financial dimension reconciliation work.

Adjacent paths

Related migrations to explore

Ready when you are

Move from metasfresh.
Land in Microsoft Dynamics 365 Business Central, 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